// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: v1.proto

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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        devicePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (preferAvoidPodsBuilder_ == null) {
          preferAvoidPods_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          preferAvoidPodsBuilder_.clear();
        }
        return this;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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: mulitple 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: mulitple 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: mulitple 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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: mulitple 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: mulitple 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: mulitple 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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: mulitple 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: mulitple 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: mulitple 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: mulitple 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: mulitple 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: mulitple 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.AzureDiskVolumeSource 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        secretName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        shareName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.Binding 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

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

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

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

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.Capabilities 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.CephFSVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.CephFSVolumeSource build() {
        io.kubernetes.client.proto.V1.CephFSVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.CephFSVolumeSource 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>
   * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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.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 && 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.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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        volumeID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.CinderVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.CinderVolumeSource build() {
        io.kubernetes.client.proto.V1.CinderVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.CinderVolumeSource 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        error_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor;
      }

      public io.kubernetes.client.proto.V1.ComponentCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ComponentCondition.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ComponentCondition build() {
        io.kubernetes.client.proto.V1.ComponentCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.ComponentStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ComponentStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ComponentStatus build() {
        io.kubernetes.client.proto.V1.ComponentStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor;
      }

      public io.kubernetes.client.proto.V1.ComponentStatusList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ComponentStatusList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ComponentStatusList build() {
        io.kubernetes.client.proto.V1.ComponentStatusList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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 '.'.
     * +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 '.'.
     * +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 '.'.
     * +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 '.'.
     * +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 '.'.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */

    java.lang.String getDataOrThrow(
        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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 2:
          return internalGetData();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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 '.'.
     * +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 '.'.
     * +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 '.'.
     * +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 '.'.
     * +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);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
      unknownFields.writeTo(output);
    }

    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__);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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();
          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();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableData().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMap_descriptor;
      }

      public io.kubernetes.client.proto.V1.ConfigMap getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMap.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ConfigMap build() {
        io.kubernetes.client.proto.V1.ConfigMap result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 '.'.
       * +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 '.'.
       * +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 '.'.
       * +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 '.'.
       * +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 '.'.
       * +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 '.'.
       * +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 '.'.
       * +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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.ConfigMapEnvSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ConfigMapEnvSource build() {
        io.kubernetes.client.proto.V1.ConfigMapEnvSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor;
      }

      public io.kubernetes.client.proto.V1.ConfigMapKeySelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ConfigMapKeySelector build() {
        io.kubernetes.client.proto.V1.ConfigMapKeySelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor;
      }

      public io.kubernetes.client.proto.V1.ConfigMapList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ConfigMapList build() {
        io.kubernetes.client.proto.V1.ConfigMapList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.ConfigMapList 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor;
      }

      public io.kubernetes.client.proto.V1.ConfigMapProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ConfigMapProjection build() {
        io.kubernetes.client.proto.V1.ConfigMapProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource build() {
        io.kubernetes.client.proto.V1.ConfigMapVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    boolean hasImage();
    /**
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    java.lang.String getImage();
    /**
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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/storage/persistent-volumes#resources
     * +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/storage/persistent-volumes#resources
     * +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/storage/persistent-volumes#resources
     * +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>
     * 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://git.k8s.io/community/contributors/design-proposals/security_context.md
     * +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://git.k8s.io/community/contributors/design-proposals/security_context.md
     * +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://git.k8s.io/community/contributors/design-proposals/security_context.md
     * +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();
      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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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_);
        }
        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;
    }

    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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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/storage/persistent-volumes#resources
     * +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/storage/persistent-volumes#resources
     * +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/storage/persistent-volumes#resources
     * +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 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://git.k8s.io/community/contributors/design-proposals/security_context.md
     * +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://git.k8s.io/community/contributors/design-proposals/security_context.md
     * +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://git.k8s.io/community/contributors/design-proposals/security_context.md
     * +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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && (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 (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);
    }

    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);
    }
    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;
      }

      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();
          getLivenessProbeFieldBuilder();
          getReadinessProbeFieldBuilder();
          getLifecycleFieldBuilder();
          getSecurityContextFieldBuilder();
        }
      }
      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 (livenessProbeBuilder_ == null) {
          livenessProbe_ = null;
        } else {
          livenessProbeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (readinessProbeBuilder_ == null) {
          readinessProbe_ = null;
        } else {
          readinessProbeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (lifecycleBuilder_ == null) {
          lifecycle_ = null;
        } else {
          lifecycleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        terminationMessagePath_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        terminationMessagePolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        imagePullPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        if (securityContextBuilder_ == null) {
          securityContext_ = null;
        } else {
          securityContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        stdin_ = false;
        bitField0_ = (bitField0_ & ~0x00020000);
        stdinOnce_ = false;
        bitField0_ = (bitField0_ & ~0x00040000);
        tty_ = false;
        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Container_descriptor;
      }

      public io.kubernetes.client.proto.V1.Container getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Container.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Container build() {
        io.kubernetes.client.proto.V1.Container result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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 (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000010;
        }
        if (livenessProbeBuilder_ == null) {
          result.livenessProbe_ = livenessProbe_;
        } else {
          result.livenessProbe_ = livenessProbeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000020;
        }
        if (readinessProbeBuilder_ == null) {
          result.readinessProbe_ = readinessProbe_;
        } else {
          result.readinessProbe_ = readinessProbeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000040;
        }
        if (lifecycleBuilder_ == null) {
          result.lifecycle_ = lifecycle_;
        } else {
          result.lifecycle_ = lifecycleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000080;
        }
        result.terminationMessagePath_ = terminationMessagePath_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00000100;
        }
        result.terminationMessagePolicy_ = terminationMessagePolicy_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00000200;
        }
        result.imagePullPolicy_ = imagePullPolicy_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00000400;
        }
        if (securityContextBuilder_ == null) {
          result.securityContext_ = securityContext_;
        } else {
          result.securityContext_ = securityContextBuilder_.build();
        }
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.stdin_ = stdin_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.stdinOnce_ = stdinOnce_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.tty_ = tty_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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 (other.hasLivenessProbe()) {
          mergeLivenessProbe(other.getLivenessProbe());
        }
        if (other.hasReadinessProbe()) {
          mergeReadinessProbe(other.getReadinessProbe());
        }
        if (other.hasLifecycle()) {
          mergeLifecycle(other.getLifecycle());
        }
        if (other.hasTerminationMessagePath()) {
          bitField0_ |= 0x00002000;
          terminationMessagePath_ = other.terminationMessagePath_;
          onChanged();
        }
        if (other.hasTerminationMessagePolicy()) {
          bitField0_ |= 0x00004000;
          terminationMessagePolicy_ = other.terminationMessagePolicy_;
          onChanged();
        }
        if (other.hasImagePullPolicy()) {
          bitField0_ |= 0x00008000;
          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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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/storage/persistent-volumes#resources
       * +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 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_ & 0x00000400) == 0x00000400);
      }
      /**
       * <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_ |= 0x00000400;
        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_ |= 0x00000400;
        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_ & 0x00000400) == 0x00000400) &&
              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_ |= 0x00000400;
        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_ & ~0x00000400);
        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_ |= 0x00000400;
        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_ & 0x00000800) == 0x00000800);
      }
      /**
       * <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_ |= 0x00000800;
        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_ |= 0x00000800;
        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_ & 0x00000800) == 0x00000800) &&
              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_ |= 0x00000800;
        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_ & ~0x00000800);
        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_ |= 0x00000800;
        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_ & 0x00001000) == 0x00001000);
      }
      /**
       * <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_ |= 0x00001000;
        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_ |= 0x00001000;
        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_ & 0x00001000) == 0x00001000) &&
              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_ |= 0x00001000;
        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_ & ~0x00001000);
        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_ |= 0x00001000;
        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_ & 0x00002000) == 0x00002000);
      }
      /**
       * <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_ |= 0x00002000;
        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_ & ~0x00002000);
        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_ |= 0x00002000;
        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_ & 0x00004000) == 0x00004000);
      }
      /**
       * <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_ |= 0x00004000;
        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_ & ~0x00004000);
        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_ |= 0x00004000;
        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_ & 0x00008000) == 0x00008000);
      }
      /**
       * <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_ |= 0x00008000;
        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_ & ~0x00008000);
        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_ |= 0x00008000;
        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://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public boolean hasSecurityContext() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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_ |= 0x00010000;
        return this;
      }
      /**
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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_ |= 0x00010000;
        return this;
      }
      /**
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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_ & 0x00010000) == 0x00010000) &&
              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_ |= 0x00010000;
        return this;
      }
      /**
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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_ & ~0x00010000);
        return this;
      }
      /**
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public io.kubernetes.client.proto.V1.SecurityContext.Builder getSecurityContextBuilder() {
        bitField0_ |= 0x00010000;
        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://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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://git.k8s.io/community/contributors/design-proposals/security_context.md
       * +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_ & 0x00020000) == 0x00020000);
      }
      /**
       * <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_ |= 0x00020000;
        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_ & ~0x00020000);
        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_ & 0x00040000) == 0x00040000);
      }
      /**
       * <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_ |= 0x00040000;
        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_ & ~0x00040000);
        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_ & 0x00080000) == 0x00080000);
      }
      /**
       * <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_ |= 0x00080000;
        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_ & ~0x00080000);
        tty_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        sizeBytes_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerImage_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerImage getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerImage.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerImage build() {
        io.kubernetes.client.proto.V1.ContainerImage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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. ["gcr.io/google_containers/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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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 or TCP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    boolean hasProtocol();
    /**
     * <pre>
     * Protocol for port. Must be UDP or TCP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    java.lang.String getProtocol();
    /**
     * <pre>
     * Protocol for port. Must be UDP or TCP.
     * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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 or TCP.
     * 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 or TCP.
     * 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 or TCP.
     * 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerPort_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerPort getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerPort.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerPort build() {
        io.kubernetes.client.proto.V1.ContainerPort result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerState_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerState getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerState build() {
        io.kubernetes.client.proto.V1.ContainerState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getStartedAt());
      }
      unknownFields.writeTo(output);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (startedAtBuilder_ == null) {
          startedAt_ = null;
        } else {
          startedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerStateRunning getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerStateRunning build() {
        io.kubernetes.client.proto.V1.ContainerStateRunning result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerStateTerminated getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerStateTerminated build() {
        io.kubernetes.client.proto.V1.ContainerStateTerminated result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerStateWaiting getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerStateWaiting build() {
        io.kubernetes.client.proto.V1.ContainerStateWaiting result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.ContainerStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ContainerStatus build() {
        io.kubernetes.client.proto.V1.ContainerStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              port_ = input.readInt32();
              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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, port_);
      }
      unknownFields.writeTo(output);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor;
      }

      public io.kubernetes.client.proto.V1.DaemonEndpoint getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.DaemonEndpoint build() {
        io.kubernetes.client.proto.V1.DaemonEndpoint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.DaemonEndpoint getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     * The duration in seconds before the object should be deleted. Value must be non-negative integer.
     * The value zero indicates delete immediately. If this value is nil, the default grace period for the
     * specified type will be used.
     * Defaults to a per object value if not specified. zero means delete immediately.
     * +optional
     * </pre>
     *
     * <code>optional int64 gracePeriodSeconds = 1;</code>
     */
    boolean hasGracePeriodSeconds();
    /**
     * <pre>
     * The duration in seconds before the object should be deleted. Value must be non-negative integer.
     * The value zero indicates delete immediately. If this value is nil, the default grace period for the
     * specified type will be used.
     * Defaults to a per object value if not specified. zero means delete immediately.
     * +optional
     * </pre>
     *
     * <code>optional int64 gracePeriodSeconds = 1;</code>
     */
    long getGracePeriodSeconds();

    /**
     * <pre>
     * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
     * returned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
     */
    boolean hasPreconditions();
    /**
     * <pre>
     * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
     * returned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
     */
    io.kubernetes.client.proto.V1.Preconditions getPreconditions();
    /**
     * <pre>
     * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
     * returned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
     */
    io.kubernetes.client.proto.V1.PreconditionsOrBuilder getPreconditionsOrBuilder();

    /**
     * <pre>
     * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
     * Should the dependent objects be orphaned. If true/false, the "orphan"
     * finalizer will be added to/removed from the object's finalizers list.
     * Either this field or PropagationPolicy may be set, but not both.
     * +optional
     * </pre>
     *
     * <code>optional bool orphanDependents = 3;</code>
     */
    boolean hasOrphanDependents();
    /**
     * <pre>
     * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
     * Should the dependent objects be orphaned. If true/false, the "orphan"
     * finalizer will be added to/removed from the object's finalizers list.
     * Either this field or PropagationPolicy may be set, but not both.
     * +optional
     * </pre>
     *
     * <code>optional bool orphanDependents = 3;</code>
     */
    boolean getOrphanDependents();

    /**
     * <pre>
     * Whether and how garbage collection will be performed.
     * Either this field or OrphanDependents may be set, but not both.
     * The default policy is decided by the existing finalizer set in the
     * metadata.finalizers and the resource-specific default policy.
     * +optional
     * </pre>
     *
     * <code>optional string propagationPolicy = 4;</code>
     */
    boolean hasPropagationPolicy();
    /**
     * <pre>
     * Whether and how garbage collection will be performed.
     * Either this field or OrphanDependents may be set, but not both.
     * The default policy is decided by the existing finalizer set in the
     * metadata.finalizers and the resource-specific default policy.
     * +optional
     * </pre>
     *
     * <code>optional string propagationPolicy = 4;</code>
     */
    java.lang.String getPropagationPolicy();
    /**
     * <pre>
     * Whether and how garbage collection will be performed.
     * Either this field or OrphanDependents may be set, but not both.
     * The default policy is decided by the existing finalizer set in the
     * metadata.finalizers and the resource-specific default policy.
     * +optional
     * </pre>
     *
     * <code>optional string propagationPolicy = 4;</code>
     */
    com.google.protobuf.ByteString
        getPropagationPolicyBytes();
  }
  /**
   * <pre>
   * DeleteOptions may be provided when deleting an API object
   * DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
   * +k8s:openapi-gen=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.DeleteOptions}
   */
  public  static final class DeleteOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.DeleteOptions)
      DeleteOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteOptions.newBuilder() to construct.
    private DeleteOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteOptions() {
      gracePeriodSeconds_ = 0L;
      orphanDependents_ = false;
      propagationPolicy_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gracePeriodSeconds_ = input.readInt64();
              break;
            }
            case 18: {
              io.kubernetes.client.proto.V1.Preconditions.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = preconditions_.toBuilder();
              }
              preconditions_ = input.readMessage(io.kubernetes.client.proto.V1.Preconditions.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(preconditions_);
                preconditions_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              orphanDependents_ = input.readBool();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              propagationPolicy_ = bs;
              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_DeleteOptions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DeleteOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.DeleteOptions.class, io.kubernetes.client.proto.V1.DeleteOptions.Builder.class);
    }

    private int bitField0_;
    public static final int GRACEPERIODSECONDS_FIELD_NUMBER = 1;
    private long gracePeriodSeconds_;
    /**
     * <pre>
     * The duration in seconds before the object should be deleted. Value must be non-negative integer.
     * The value zero indicates delete immediately. If this value is nil, the default grace period for the
     * specified type will be used.
     * Defaults to a per object value if not specified. zero means delete immediately.
     * +optional
     * </pre>
     *
     * <code>optional int64 gracePeriodSeconds = 1;</code>
     */
    public boolean hasGracePeriodSeconds() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * The duration in seconds before the object should be deleted. Value must be non-negative integer.
     * The value zero indicates delete immediately. If this value is nil, the default grace period for the
     * specified type will be used.
     * Defaults to a per object value if not specified. zero means delete immediately.
     * +optional
     * </pre>
     *
     * <code>optional int64 gracePeriodSeconds = 1;</code>
     */
    public long getGracePeriodSeconds() {
      return gracePeriodSeconds_;
    }

    public static final int PRECONDITIONS_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.Preconditions preconditions_;
    /**
     * <pre>
     * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
     * returned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
     */
    public boolean hasPreconditions() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
     * returned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Preconditions getPreconditions() {
      return preconditions_ == null ? io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance() : preconditions_;
    }
    /**
     * <pre>
     * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
     * returned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PreconditionsOrBuilder getPreconditionsOrBuilder() {
      return preconditions_ == null ? io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance() : preconditions_;
    }

    public static final int ORPHANDEPENDENTS_FIELD_NUMBER = 3;
    private boolean orphanDependents_;
    /**
     * <pre>
     * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
     * Should the dependent objects be orphaned. If true/false, the "orphan"
     * finalizer will be added to/removed from the object's finalizers list.
     * Either this field or PropagationPolicy may be set, but not both.
     * +optional
     * </pre>
     *
     * <code>optional bool orphanDependents = 3;</code>
     */
    public boolean hasOrphanDependents() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
     * Should the dependent objects be orphaned. If true/false, the "orphan"
     * finalizer will be added to/removed from the object's finalizers list.
     * Either this field or PropagationPolicy may be set, but not both.
     * +optional
     * </pre>
     *
     * <code>optional bool orphanDependents = 3;</code>
     */
    public boolean getOrphanDependents() {
      return orphanDependents_;
    }

    public static final int PROPAGATIONPOLICY_FIELD_NUMBER = 4;
    private volatile java.lang.Object propagationPolicy_;
    /**
     * <pre>
     * Whether and how garbage collection will be performed.
     * Either this field or OrphanDependents may be set, but not both.
     * The default policy is decided by the existing finalizer set in the
     * metadata.finalizers and the resource-specific default policy.
     * +optional
     * </pre>
     *
     * <code>optional string propagationPolicy = 4;</code>
     */
    public boolean hasPropagationPolicy() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * Whether and how garbage collection will be performed.
     * Either this field or OrphanDependents may be set, but not both.
     * The default policy is decided by the existing finalizer set in the
     * metadata.finalizers and the resource-specific default policy.
     * +optional
     * </pre>
     *
     * <code>optional string propagationPolicy = 4;</code>
     */
    public java.lang.String getPropagationPolicy() {
      java.lang.Object ref = propagationPolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          propagationPolicy_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Whether and how garbage collection will be performed.
     * Either this field or OrphanDependents may be set, but not both.
     * The default policy is decided by the existing finalizer set in the
     * metadata.finalizers and the resource-specific default policy.
     * +optional
     * </pre>
     *
     * <code>optional string propagationPolicy = 4;</code>
     */
    public com.google.protobuf.ByteString
        getPropagationPolicyBytes() {
      java.lang.Object ref = propagationPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        propagationPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, gracePeriodSeconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getPreconditions());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, orphanDependents_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, propagationPolicy_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, gracePeriodSeconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getPreconditions());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, orphanDependents_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, propagationPolicy_);
      }
      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.DeleteOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.DeleteOptions other = (io.kubernetes.client.proto.V1.DeleteOptions) obj;

      boolean result = true;
      result = result && (hasGracePeriodSeconds() == other.hasGracePeriodSeconds());
      if (hasGracePeriodSeconds()) {
        result = result && (getGracePeriodSeconds()
            == other.getGracePeriodSeconds());
      }
      result = result && (hasPreconditions() == other.hasPreconditions());
      if (hasPreconditions()) {
        result = result && getPreconditions()
            .equals(other.getPreconditions());
      }
      result = result && (hasOrphanDependents() == other.hasOrphanDependents());
      if (hasOrphanDependents()) {
        result = result && (getOrphanDependents()
            == other.getOrphanDependents());
      }
      result = result && (hasPropagationPolicy() == other.hasPropagationPolicy());
      if (hasPropagationPolicy()) {
        result = result && getPropagationPolicy()
            .equals(other.getPropagationPolicy());
      }
      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 (hasGracePeriodSeconds()) {
        hash = (37 * hash) + GRACEPERIODSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getGracePeriodSeconds());
      }
      if (hasPreconditions()) {
        hash = (37 * hash) + PRECONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getPreconditions().hashCode();
      }
      if (hasOrphanDependents()) {
        hash = (37 * hash) + ORPHANDEPENDENTS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getOrphanDependents());
      }
      if (hasPropagationPolicy()) {
        hash = (37 * hash) + PROPAGATIONPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getPropagationPolicy().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.DeleteOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.DeleteOptions 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.DeleteOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.DeleteOptions 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.DeleteOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.DeleteOptions 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.DeleteOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1.DeleteOptions 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.DeleteOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1.DeleteOptions 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.DeleteOptions 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.DeleteOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1.DeleteOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * DeleteOptions may be provided when deleting an API object
     * DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
     * +k8s:openapi-gen=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.DeleteOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.DeleteOptions)
        io.kubernetes.client.proto.V1.DeleteOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DeleteOptions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DeleteOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.DeleteOptions.class, io.kubernetes.client.proto.V1.DeleteOptions.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPreconditionsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        gracePeriodSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (preconditionsBuilder_ == null) {
          preconditions_ = null;
        } else {
          preconditionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        orphanDependents_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        propagationPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DeleteOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.DeleteOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DeleteOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.DeleteOptions build() {
        io.kubernetes.client.proto.V1.DeleteOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1.DeleteOptions buildPartial() {
        io.kubernetes.client.proto.V1.DeleteOptions result = new io.kubernetes.client.proto.V1.DeleteOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gracePeriodSeconds_ = gracePeriodSeconds_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (preconditionsBuilder_ == null) {
          result.preconditions_ = preconditions_;
        } else {
          result.preconditions_ = preconditionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.orphanDependents_ = orphanDependents_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.propagationPolicy_ = propagationPolicy_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.DeleteOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.DeleteOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.DeleteOptions other) {
        if (other == io.kubernetes.client.proto.V1.DeleteOptions.getDefaultInstance()) return this;
        if (other.hasGracePeriodSeconds()) {
          setGracePeriodSeconds(other.getGracePeriodSeconds());
        }
        if (other.hasPreconditions()) {
          mergePreconditions(other.getPreconditions());
        }
        if (other.hasOrphanDependents()) {
          setOrphanDependents(other.getOrphanDependents());
        }
        if (other.hasPropagationPolicy()) {
          bitField0_ |= 0x00000008;
          propagationPolicy_ = other.propagationPolicy_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private long gracePeriodSeconds_ ;
      /**
       * <pre>
       * The duration in seconds before the object should be deleted. Value must be non-negative integer.
       * The value zero indicates delete immediately. If this value is nil, the default grace period for the
       * specified type will be used.
       * Defaults to a per object value if not specified. zero means delete immediately.
       * +optional
       * </pre>
       *
       * <code>optional int64 gracePeriodSeconds = 1;</code>
       */
      public boolean hasGracePeriodSeconds() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The duration in seconds before the object should be deleted. Value must be non-negative integer.
       * The value zero indicates delete immediately. If this value is nil, the default grace period for the
       * specified type will be used.
       * Defaults to a per object value if not specified. zero means delete immediately.
       * +optional
       * </pre>
       *
       * <code>optional int64 gracePeriodSeconds = 1;</code>
       */
      public long getGracePeriodSeconds() {
        return gracePeriodSeconds_;
      }
      /**
       * <pre>
       * The duration in seconds before the object should be deleted. Value must be non-negative integer.
       * The value zero indicates delete immediately. If this value is nil, the default grace period for the
       * specified type will be used.
       * Defaults to a per object value if not specified. zero means delete immediately.
       * +optional
       * </pre>
       *
       * <code>optional int64 gracePeriodSeconds = 1;</code>
       */
      public Builder setGracePeriodSeconds(long value) {
        bitField0_ |= 0x00000001;
        gracePeriodSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The duration in seconds before the object should be deleted. Value must be non-negative integer.
       * The value zero indicates delete immediately. If this value is nil, the default grace period for the
       * specified type will be used.
       * Defaults to a per object value if not specified. zero means delete immediately.
       * +optional
       * </pre>
       *
       * <code>optional int64 gracePeriodSeconds = 1;</code>
       */
      public Builder clearGracePeriodSeconds() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gracePeriodSeconds_ = 0L;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.Preconditions preconditions_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.V1.Preconditions, io.kubernetes.client.proto.V1.Preconditions.Builder, io.kubernetes.client.proto.V1.PreconditionsOrBuilder> preconditionsBuilder_;
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public boolean hasPreconditions() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Preconditions getPreconditions() {
        if (preconditionsBuilder_ == null) {
          return preconditions_ == null ? io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance() : preconditions_;
        } else {
          return preconditionsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public Builder setPreconditions(io.kubernetes.client.proto.V1.Preconditions value) {
        if (preconditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          preconditions_ = value;
          onChanged();
        } else {
          preconditionsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public Builder setPreconditions(
          io.kubernetes.client.proto.V1.Preconditions.Builder builderForValue) {
        if (preconditionsBuilder_ == null) {
          preconditions_ = builderForValue.build();
          onChanged();
        } else {
          preconditionsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public Builder mergePreconditions(io.kubernetes.client.proto.V1.Preconditions value) {
        if (preconditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              preconditions_ != null &&
              preconditions_ != io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance()) {
            preconditions_ =
              io.kubernetes.client.proto.V1.Preconditions.newBuilder(preconditions_).mergeFrom(value).buildPartial();
          } else {
            preconditions_ = value;
          }
          onChanged();
        } else {
          preconditionsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public Builder clearPreconditions() {
        if (preconditionsBuilder_ == null) {
          preconditions_ = null;
          onChanged();
        } else {
          preconditionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Preconditions.Builder getPreconditionsBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPreconditionsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PreconditionsOrBuilder getPreconditionsOrBuilder() {
        if (preconditionsBuilder_ != null) {
          return preconditionsBuilder_.getMessageOrBuilder();
        } else {
          return preconditions_ == null ?
              io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance() : preconditions_;
        }
      }
      /**
       * <pre>
       * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be
       * returned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Preconditions preconditions = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.V1.Preconditions, io.kubernetes.client.proto.V1.Preconditions.Builder, io.kubernetes.client.proto.V1.PreconditionsOrBuilder> 
          getPreconditionsFieldBuilder() {
        if (preconditionsBuilder_ == null) {
          preconditionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Preconditions, io.kubernetes.client.proto.V1.Preconditions.Builder, io.kubernetes.client.proto.V1.PreconditionsOrBuilder>(
                  getPreconditions(),
                  getParentForChildren(),
                  isClean());
          preconditions_ = null;
        }
        return preconditionsBuilder_;
      }

      private boolean orphanDependents_ ;
      /**
       * <pre>
       * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
       * Should the dependent objects be orphaned. If true/false, the "orphan"
       * finalizer will be added to/removed from the object's finalizers list.
       * Either this field or PropagationPolicy may be set, but not both.
       * +optional
       * </pre>
       *
       * <code>optional bool orphanDependents = 3;</code>
       */
      public boolean hasOrphanDependents() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
       * Should the dependent objects be orphaned. If true/false, the "orphan"
       * finalizer will be added to/removed from the object's finalizers list.
       * Either this field or PropagationPolicy may be set, but not both.
       * +optional
       * </pre>
       *
       * <code>optional bool orphanDependents = 3;</code>
       */
      public boolean getOrphanDependents() {
        return orphanDependents_;
      }
      /**
       * <pre>
       * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
       * Should the dependent objects be orphaned. If true/false, the "orphan"
       * finalizer will be added to/removed from the object's finalizers list.
       * Either this field or PropagationPolicy may be set, but not both.
       * +optional
       * </pre>
       *
       * <code>optional bool orphanDependents = 3;</code>
       */
      public Builder setOrphanDependents(boolean value) {
        bitField0_ |= 0x00000004;
        orphanDependents_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
       * Should the dependent objects be orphaned. If true/false, the "orphan"
       * finalizer will be added to/removed from the object's finalizers list.
       * Either this field or PropagationPolicy may be set, but not both.
       * +optional
       * </pre>
       *
       * <code>optional bool orphanDependents = 3;</code>
       */
      public Builder clearOrphanDependents() {
        bitField0_ = (bitField0_ & ~0x00000004);
        orphanDependents_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object propagationPolicy_ = "";
      /**
       * <pre>
       * Whether and how garbage collection will be performed.
       * Either this field or OrphanDependents may be set, but not both.
       * The default policy is decided by the existing finalizer set in the
       * metadata.finalizers and the resource-specific default policy.
       * +optional
       * </pre>
       *
       * <code>optional string propagationPolicy = 4;</code>
       */
      public boolean hasPropagationPolicy() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * Whether and how garbage collection will be performed.
       * Either this field or OrphanDependents may be set, but not both.
       * The default policy is decided by the existing finalizer set in the
       * metadata.finalizers and the resource-specific default policy.
       * +optional
       * </pre>
       *
       * <code>optional string propagationPolicy = 4;</code>
       */
      public java.lang.String getPropagationPolicy() {
        java.lang.Object ref = propagationPolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            propagationPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Whether and how garbage collection will be performed.
       * Either this field or OrphanDependents may be set, but not both.
       * The default policy is decided by the existing finalizer set in the
       * metadata.finalizers and the resource-specific default policy.
       * +optional
       * </pre>
       *
       * <code>optional string propagationPolicy = 4;</code>
       */
      public com.google.protobuf.ByteString
          getPropagationPolicyBytes() {
        java.lang.Object ref = propagationPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          propagationPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Whether and how garbage collection will be performed.
       * Either this field or OrphanDependents may be set, but not both.
       * The default policy is decided by the existing finalizer set in the
       * metadata.finalizers and the resource-specific default policy.
       * +optional
       * </pre>
       *
       * <code>optional string propagationPolicy = 4;</code>
       */
      public Builder setPropagationPolicy(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        propagationPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether and how garbage collection will be performed.
       * Either this field or OrphanDependents may be set, but not both.
       * The default policy is decided by the existing finalizer set in the
       * metadata.finalizers and the resource-specific default policy.
       * +optional
       * </pre>
       *
       * <code>optional string propagationPolicy = 4;</code>
       */
      public Builder clearPropagationPolicy() {
        bitField0_ = (bitField0_ & ~0x00000008);
        propagationPolicy_ = getDefaultInstance().getPropagationPolicy();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether and how garbage collection will be performed.
       * Either this field or OrphanDependents may be set, but not both.
       * The default policy is decided by the existing finalizer set in the
       * metadata.finalizers and the resource-specific default policy.
       * +optional
       * </pre>
       *
       * <code>optional string propagationPolicy = 4;</code>
       */
      public Builder setPropagationPolicyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        propagationPolicy_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.DeleteOptions)
    private static final io.kubernetes.client.proto.V1.DeleteOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.DeleteOptions();
    }

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

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

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

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

    public io.kubernetes.client.proto.V1.DeleteOptions 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor;
      }

      public io.kubernetes.client.proto.V1.DownwardAPIProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.DownwardAPIProjection build() {
        io.kubernetes.client.proto.V1.DownwardAPIProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor;
      }

      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile build() {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource build() {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        medium_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (sizeLimitBuilder_ == null) {
          sizeLimit_ = null;
        } else {
          sizeLimitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource build() {
        io.kubernetes.client.proto.V1.EmptyDirVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor;
      }

      public io.kubernetes.client.proto.V1.EndpointAddress getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EndpointAddress build() {
        io.kubernetes.client.proto.V1.EndpointAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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 or TCP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    boolean hasProtocol();
    /**
     * <pre>
     * The IP protocol for this port.
     * Must be UDP or TCP.
     * 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 or TCP.
     * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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 or TCP.
     * 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 or TCP.
     * 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 or TCP.
     * 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EndpointPort_descriptor;
      }

      public io.kubernetes.client.proto.V1.EndpointPort getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointPort.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EndpointPort build() {
        io.kubernetes.client.proto.V1.EndpointPort result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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 or TCP.
       * 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor;
      }

      public io.kubernetes.client.proto.V1.EndpointSubset getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointSubset.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EndpointSubset build() {
        io.kubernetes.client.proto.V1.EndpointSubset result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
     * </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.
     * </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.
     * </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.
     * </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.
     * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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.
     * </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.
     * </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.
     * </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.
     * </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.
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Endpoints_descriptor;
      }

      public io.kubernetes.client.proto.V1.Endpoints getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Endpoints.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Endpoints build() {
        io.kubernetes.client.proto.V1.Endpoints result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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.
       * </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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EndpointsList_descriptor;
      }

      public io.kubernetes.client.proto.V1.EndpointsList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointsList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EndpointsList build() {
        io.kubernetes.client.proto.V1.EndpointsList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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 identifer 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 identifer 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 identifer 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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 identifer 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 identifer 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 identifer 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.EnvFromSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EnvFromSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EnvFromSource build() {
        io.kubernetes.client.proto.V1.EnvFromSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 identifer 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 identifer 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 identifer 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 identifer 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 identifer 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 identifer 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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EnvVar_descriptor;
      }

      public io.kubernetes.client.proto.V1.EnvVar getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EnvVar.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EnvVar build() {
        io.kubernetes.client.proto.V1.EnvVar result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.EnvVarSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EnvVarSource build() {
        io.kubernetes.client.proto.V1.EnvVarSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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, requests.cpu and requests.memory) 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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
   * Event is a report of an event somewhere in the cluster.
   * TODO: Decide whether to store these separately or with the object they apply to.
   * </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_ = "";
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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.
     * TODO: Decide whether to store these separately or with the object they apply to.
     * </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;
      }

      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Event_descriptor;
      }

      public io.kubernetes.client.proto.V1.Event getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Event.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Event build() {
        io.kubernetes.client.proto.V1.Event result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EventList_descriptor;
      }

      public io.kubernetes.client.proto.V1.EventList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EventList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EventList build() {
        io.kubernetes.client.proto.V1.EventList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.EventList 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        component_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        host_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EventSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.EventSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EventSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.EventSource build() {
        io.kubernetes.client.proto.V1.EventSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ExecAction_descriptor;
      }

      public io.kubernetes.client.proto.V1.ExecAction getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ExecAction build() {
        io.kubernetes.client.proto.V1.ExecAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    java.util.List<java.lang.String>
        getTargetWWNsList();
    /**
     * <pre>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    int getTargetWWNsCount();
    /**
     * <pre>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    java.lang.String getTargetWWNs(int index);
    /**
     * <pre>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    com.google.protobuf.ByteString
        getTargetWWNsBytes(int index);

    /**
     * <pre>
     * Required: FC target lun number
     * </pre>
     *
     * <code>optional int32 lun = 2;</code>
     */
    boolean hasLun();
    /**
     * <pre>
     * Required: FC target lun number
     * </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>
   * 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;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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();
        }
        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;
    }

    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>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTargetWWNsList() {
      return targetWWNs_;
    }
    /**
     * <pre>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public int getTargetWWNsCount() {
      return targetWWNs_.size();
    }
    /**
     * <pre>
     * Required: FC target worldwide names (WWNs)
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public java.lang.String getTargetWWNs(int index) {
      return targetWWNs_.get(index);
    }
    /**
     * <pre>
     * Required: FC target worldwide names (WWNs)
     * </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>
     * Required: FC target lun number
     * </pre>
     *
     * <code>optional int32 lun = 2;</code>
     */
    public boolean hasLun() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Required: FC target lun number
     * </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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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());
      }
      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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.FCVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.FCVolumeSource build() {
        io.kubernetes.client.proto.V1.FCVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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>
       * Required: FC target worldwide names (WWNs)
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTargetWWNsList() {
        return targetWWNs_.getUnmodifiableView();
      }
      /**
       * <pre>
       * Required: FC target worldwide names (WWNs)
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public int getTargetWWNsCount() {
        return targetWWNs_.size();
      }
      /**
       * <pre>
       * Required: FC target worldwide names (WWNs)
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public java.lang.String getTargetWWNs(int index) {
        return targetWWNs_.get(index);
      }
      /**
       * <pre>
       * Required: FC target worldwide names (WWNs)
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public com.google.protobuf.ByteString
          getTargetWWNsBytes(int index) {
        return targetWWNs_.getByteString(index);
      }
      /**
       * <pre>
       * Required: FC target worldwide names (WWNs)
       * </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>
       * Required: FC target worldwide names (WWNs)
       * </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>
       * Required: FC target worldwide names (WWNs)
       * </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>
       * Required: FC target worldwide names (WWNs)
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public Builder clearTargetWWNs() {
        targetWWNs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Required: FC target worldwide names (WWNs)
       * </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>
       * Required: FC target lun number
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public boolean hasLun() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Required: FC target lun number
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public int getLun() {
        return lun_;
      }
      /**
       * <pre>
       * Required: FC target lun number
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public Builder setLun(int value) {
        bitField0_ |= 0x00000002;
        lun_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Required: FC target lun number
       * </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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.FCVolumeSource 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. This is an alpha feature and may change in future.
   * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 5:
          return internalGetOptions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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. This is an alpha feature and may change in future.
     * </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);
        }
      }
      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.FlexVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.FlexVolumeSource build() {
        io.kubernetes.client.proto.V1.FlexVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        datasetName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        datasetUUID_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.FlockerVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.FlockerVolumeSource build() {
        io.kubernetes.client.proto.V1.FlockerVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
   * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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.
     * </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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        repository_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        revision_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        directory_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.GitRepoVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.GitRepoVolumeSource build() {
        io.kubernetes.client.proto.V1.GitRepoVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.GitRepoVolumeSource 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        endpoints_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource build() {
        io.kubernetes.client.proto.V1.GlusterfsVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor;
      }

      public io.kubernetes.client.proto.V1.HTTPGetAction getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.HTTPGetAction build() {
        io.kubernetes.client.proto.V1.HTTPGetAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor;
      }

      public io.kubernetes.client.proto.V1.HTTPHeader getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HTTPHeader.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.HTTPHeader build() {
        io.kubernetes.client.proto.V1.HTTPHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Handler_descriptor;
      }

      public io.kubernetes.client.proto.V1.Handler getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Handler.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Handler build() {
        io.kubernetes.client.proto.V1.Handler result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostnames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_HostAlias_descriptor;
      }

      public io.kubernetes.client.proto.V1.HostAlias getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HostAlias.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.HostAlias build() {
        io.kubernetes.client.proto.V1.HostAlias result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
     * 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.
     * 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.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString
        getPathBytes();
  }
  /**
   * <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_ = "";
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              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;
    }

    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.
     * 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.
     * 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.
     * 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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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.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 && 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.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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.HostPathVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.HostPathVolumeSource build() {
        io.kubernetes.client.proto.V1.HostPathVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.
       * 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.
       * 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.
       * 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.
       * 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.
       * 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.
       * 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.HostPathVolumeSource 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>
     * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    boolean hasIscsiInterface();
    /**
     * <pre>
     * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    java.lang.String getIscsiInterface();
    /**
     * <pre>
     * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
     * +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>
   * 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;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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>
     * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public boolean hasIscsiInterface() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
     * +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>
     * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
     * +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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.ISCSIVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ISCSIVolumeSource build() {
        io.kubernetes.client.proto.V1.ISCSIVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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>
       * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public boolean hasIscsiInterface() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
       * +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>
       * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
       * +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>
       * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
       * +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>
       * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder clearIscsiInterface() {
        bitField0_ = (bitField0_ & ~0x00000008);
        iscsiInterface_ = getDefaultInstance().getIscsiInterface();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.
       * +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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        mode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_KeyToPath_descriptor;
      }

      public io.kubernetes.client.proto.V1.KeyToPath getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.KeyToPath build() {
        io.kubernetes.client.proto.V1.KeyToPath result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Lifecycle_descriptor;
      }

      public io.kubernetes.client.proto.V1.Lifecycle getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Lifecycle build() {
        io.kubernetes.client.proto.V1.Lifecycle result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LimitRange_descriptor;
      }

      public io.kubernetes.client.proto.V1.LimitRange getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRange.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LimitRange build() {
        io.kubernetes.client.proto.V1.LimitRange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    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);
      }
    }
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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);
        }
      }
      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) {
        }
      }
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableMax().clear();
        internalGetMutableMin().clear();
        internalGetMutableDefault().clear();
        internalGetMutableDefaultRequest().clear();
        internalGetMutableMaxLimitRequestRatio().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor;
      }

      public io.kubernetes.client.proto.V1.LimitRangeItem getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRangeItem.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LimitRangeItem build() {
        io.kubernetes.client.proto.V1.LimitRangeItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor;
      }

      public io.kubernetes.client.proto.V1.LimitRangeList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRangeList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LimitRangeList build() {
        io.kubernetes.client.proto.V1.LimitRangeList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md
       * </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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (limitsBuilder_ == null) {
          limits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          limitsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.LimitRangeSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LimitRangeSpec build() {
        io.kubernetes.client.proto.V1.LimitRangeSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_List_descriptor;
      }

      public io.kubernetes.client.proto.V1.List getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.List.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.List build() {
        io.kubernetes.client.proto.V1.List result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.List getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     * A selector to restrict the list of returned objects by their labels.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelector = 1;</code>
     */
    boolean hasLabelSelector();
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their labels.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelector = 1;</code>
     */
    java.lang.String getLabelSelector();
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their labels.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelector = 1;</code>
     */
    com.google.protobuf.ByteString
        getLabelSelectorBytes();

    /**
     * <pre>
     * A selector to restrict the list of returned objects by their fields.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string fieldSelector = 2;</code>
     */
    boolean hasFieldSelector();
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their fields.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string fieldSelector = 2;</code>
     */
    java.lang.String getFieldSelector();
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their fields.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string fieldSelector = 2;</code>
     */
    com.google.protobuf.ByteString
        getFieldSelectorBytes();

    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 6;</code>
     */
    boolean hasIncludeUninitialized();
    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 6;</code>
     */
    boolean getIncludeUninitialized();

    /**
     * <pre>
     * Watch for changes to the described resources and return them as a stream of
     * add, update, and remove notifications. Specify resourceVersion.
     * +optional
     * </pre>
     *
     * <code>optional bool watch = 3;</code>
     */
    boolean hasWatch();
    /**
     * <pre>
     * Watch for changes to the described resources and return them as a stream of
     * add, update, and remove notifications. Specify resourceVersion.
     * +optional
     * </pre>
     *
     * <code>optional bool watch = 3;</code>
     */
    boolean getWatch();

    /**
     * <pre>
     * When specified with a watch call, shows changes that occur after that particular version of a resource.
     * Defaults to changes from the beginning of history.
     * When specified for list:
     * - if unset, then the result is returned from remote storage based on quorum-read flag;
     * - if it's 0, then we simply return what we currently have in cache, no guarantee;
     * - if set to non zero, then the result is at least as fresh as given rv.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    boolean hasResourceVersion();
    /**
     * <pre>
     * When specified with a watch call, shows changes that occur after that particular version of a resource.
     * Defaults to changes from the beginning of history.
     * When specified for list:
     * - if unset, then the result is returned from remote storage based on quorum-read flag;
     * - if it's 0, then we simply return what we currently have in cache, no guarantee;
     * - if set to non zero, then the result is at least as fresh as given rv.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    java.lang.String getResourceVersion();
    /**
     * <pre>
     * When specified with a watch call, shows changes that occur after that particular version of a resource.
     * Defaults to changes from the beginning of history.
     * When specified for list:
     * - if unset, then the result is returned from remote storage based on quorum-read flag;
     * - if it's 0, then we simply return what we currently have in cache, no guarantee;
     * - if set to non zero, then the result is at least as fresh as given rv.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    com.google.protobuf.ByteString
        getResourceVersionBytes();

    /**
     * <pre>
     * Timeout for the list/watch call.
     * +optional
     * </pre>
     *
     * <code>optional int64 timeoutSeconds = 5;</code>
     */
    boolean hasTimeoutSeconds();
    /**
     * <pre>
     * Timeout for the list/watch call.
     * +optional
     * </pre>
     *
     * <code>optional int64 timeoutSeconds = 5;</code>
     */
    long getTimeoutSeconds();
  }
  /**
   * <pre>
   * ListOptions is the query options to a standard REST list call.
   * DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
   * +k8s:openapi-gen=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ListOptions}
   */
  public  static final class ListOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ListOptions)
      ListOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListOptions.newBuilder() to construct.
    private ListOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListOptions() {
      labelSelector_ = "";
      fieldSelector_ = "";
      includeUninitialized_ = false;
      watch_ = false;
      resourceVersion_ = "";
      timeoutSeconds_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              labelSelector_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              fieldSelector_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000008;
              watch_ = input.readBool();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              resourceVersion_ = bs;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000020;
              timeoutSeconds_ = input.readInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000004;
              includeUninitialized_ = input.readBool();
              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_ListOptions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ListOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ListOptions.class, io.kubernetes.client.proto.V1.ListOptions.Builder.class);
    }

    private int bitField0_;
    public static final int LABELSELECTOR_FIELD_NUMBER = 1;
    private volatile java.lang.Object labelSelector_;
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their labels.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelector = 1;</code>
     */
    public boolean hasLabelSelector() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their labels.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelector = 1;</code>
     */
    public java.lang.String getLabelSelector() {
      java.lang.Object ref = labelSelector_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          labelSelector_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their labels.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelector = 1;</code>
     */
    public com.google.protobuf.ByteString
        getLabelSelectorBytes() {
      java.lang.Object ref = labelSelector_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        labelSelector_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FIELDSELECTOR_FIELD_NUMBER = 2;
    private volatile java.lang.Object fieldSelector_;
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their fields.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string fieldSelector = 2;</code>
     */
    public boolean hasFieldSelector() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their fields.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string fieldSelector = 2;</code>
     */
    public java.lang.String getFieldSelector() {
      java.lang.Object ref = fieldSelector_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fieldSelector_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * A selector to restrict the list of returned objects by their fields.
     * Defaults to everything.
     * +optional
     * </pre>
     *
     * <code>optional string fieldSelector = 2;</code>
     */
    public com.google.protobuf.ByteString
        getFieldSelectorBytes() {
      java.lang.Object ref = fieldSelector_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        fieldSelector_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INCLUDEUNINITIALIZED_FIELD_NUMBER = 6;
    private boolean includeUninitialized_;
    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 6;</code>
     */
    public boolean hasIncludeUninitialized() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 6;</code>
     */
    public boolean getIncludeUninitialized() {
      return includeUninitialized_;
    }

    public static final int WATCH_FIELD_NUMBER = 3;
    private boolean watch_;
    /**
     * <pre>
     * Watch for changes to the described resources and return them as a stream of
     * add, update, and remove notifications. Specify resourceVersion.
     * +optional
     * </pre>
     *
     * <code>optional bool watch = 3;</code>
     */
    public boolean hasWatch() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * Watch for changes to the described resources and return them as a stream of
     * add, update, and remove notifications. Specify resourceVersion.
     * +optional
     * </pre>
     *
     * <code>optional bool watch = 3;</code>
     */
    public boolean getWatch() {
      return watch_;
    }

    public static final int RESOURCEVERSION_FIELD_NUMBER = 4;
    private volatile java.lang.Object resourceVersion_;
    /**
     * <pre>
     * When specified with a watch call, shows changes that occur after that particular version of a resource.
     * Defaults to changes from the beginning of history.
     * When specified for list:
     * - if unset, then the result is returned from remote storage based on quorum-read flag;
     * - if it's 0, then we simply return what we currently have in cache, no guarantee;
     * - if set to non zero, then the result is at least as fresh as given rv.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    public boolean hasResourceVersion() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * When specified with a watch call, shows changes that occur after that particular version of a resource.
     * Defaults to changes from the beginning of history.
     * When specified for list:
     * - if unset, then the result is returned from remote storage based on quorum-read flag;
     * - if it's 0, then we simply return what we currently have in cache, no guarantee;
     * - if set to non zero, then the result is at least as fresh as given rv.
     * +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>
     * When specified with a watch call, shows changes that occur after that particular version of a resource.
     * Defaults to changes from the beginning of history.
     * When specified for list:
     * - if unset, then the result is returned from remote storage based on quorum-read flag;
     * - if it's 0, then we simply return what we currently have in cache, no guarantee;
     * - if set to non zero, then the result is at least as fresh as given rv.
     * +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 TIMEOUTSECONDS_FIELD_NUMBER = 5;
    private long timeoutSeconds_;
    /**
     * <pre>
     * Timeout for the list/watch call.
     * +optional
     * </pre>
     *
     * <code>optional int64 timeoutSeconds = 5;</code>
     */
    public boolean hasTimeoutSeconds() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     * Timeout for the list/watch call.
     * +optional
     * </pre>
     *
     * <code>optional int64 timeoutSeconds = 5;</code>
     */
    public long getTimeoutSeconds() {
      return timeoutSeconds_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, labelSelector_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fieldSelector_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(3, watch_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, resourceVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt64(5, timeoutSeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(6, includeUninitialized_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, labelSelector_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fieldSelector_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, watch_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, resourceVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, timeoutSeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, includeUninitialized_);
      }
      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.ListOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ListOptions other = (io.kubernetes.client.proto.V1.ListOptions) obj;

      boolean result = true;
      result = result && (hasLabelSelector() == other.hasLabelSelector());
      if (hasLabelSelector()) {
        result = result && getLabelSelector()
            .equals(other.getLabelSelector());
      }
      result = result && (hasFieldSelector() == other.hasFieldSelector());
      if (hasFieldSelector()) {
        result = result && getFieldSelector()
            .equals(other.getFieldSelector());
      }
      result = result && (hasIncludeUninitialized() == other.hasIncludeUninitialized());
      if (hasIncludeUninitialized()) {
        result = result && (getIncludeUninitialized()
            == other.getIncludeUninitialized());
      }
      result = result && (hasWatch() == other.hasWatch());
      if (hasWatch()) {
        result = result && (getWatch()
            == other.getWatch());
      }
      result = result && (hasResourceVersion() == other.hasResourceVersion());
      if (hasResourceVersion()) {
        result = result && getResourceVersion()
            .equals(other.getResourceVersion());
      }
      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 (hasLabelSelector()) {
        hash = (37 * hash) + LABELSELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getLabelSelector().hashCode();
      }
      if (hasFieldSelector()) {
        hash = (37 * hash) + FIELDSELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getFieldSelector().hashCode();
      }
      if (hasIncludeUninitialized()) {
        hash = (37 * hash) + INCLUDEUNINITIALIZED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIncludeUninitialized());
      }
      if (hasWatch()) {
        hash = (37 * hash) + WATCH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getWatch());
      }
      if (hasResourceVersion()) {
        hash = (37 * hash) + RESOURCEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getResourceVersion().hashCode();
      }
      if (hasTimeoutSeconds()) {
        hash = (37 * hash) + TIMEOUTSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeoutSeconds());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ListOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.ListOptions 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.ListOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.ListOptions 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.ListOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.ListOptions 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.ListOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1.ListOptions 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.ListOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1.ListOptions 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.ListOptions 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.ListOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1.ListOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * ListOptions is the query options to a standard REST list call.
     * DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
     * +k8s:openapi-gen=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ListOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ListOptions)
        io.kubernetes.client.proto.V1.ListOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ListOptions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ListOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ListOptions.class, io.kubernetes.client.proto.V1.ListOptions.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        labelSelector_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fieldSelector_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        includeUninitialized_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        watch_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        resourceVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        timeoutSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ListOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.ListOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ListOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ListOptions build() {
        io.kubernetes.client.proto.V1.ListOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1.ListOptions buildPartial() {
        io.kubernetes.client.proto.V1.ListOptions result = new io.kubernetes.client.proto.V1.ListOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.labelSelector_ = labelSelector_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fieldSelector_ = fieldSelector_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.includeUninitialized_ = includeUninitialized_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.watch_ = watch_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.resourceVersion_ = resourceVersion_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.timeoutSeconds_ = timeoutSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ListOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.ListOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ListOptions other) {
        if (other == io.kubernetes.client.proto.V1.ListOptions.getDefaultInstance()) return this;
        if (other.hasLabelSelector()) {
          bitField0_ |= 0x00000001;
          labelSelector_ = other.labelSelector_;
          onChanged();
        }
        if (other.hasFieldSelector()) {
          bitField0_ |= 0x00000002;
          fieldSelector_ = other.fieldSelector_;
          onChanged();
        }
        if (other.hasIncludeUninitialized()) {
          setIncludeUninitialized(other.getIncludeUninitialized());
        }
        if (other.hasWatch()) {
          setWatch(other.getWatch());
        }
        if (other.hasResourceVersion()) {
          bitField0_ |= 0x00000010;
          resourceVersion_ = other.resourceVersion_;
          onChanged();
        }
        if (other.hasTimeoutSeconds()) {
          setTimeoutSeconds(other.getTimeoutSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object labelSelector_ = "";
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their labels.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelector = 1;</code>
       */
      public boolean hasLabelSelector() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their labels.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelector = 1;</code>
       */
      public java.lang.String getLabelSelector() {
        java.lang.Object ref = labelSelector_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            labelSelector_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their labels.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelector = 1;</code>
       */
      public com.google.protobuf.ByteString
          getLabelSelectorBytes() {
        java.lang.Object ref = labelSelector_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          labelSelector_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their labels.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelector = 1;</code>
       */
      public Builder setLabelSelector(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        labelSelector_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their labels.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelector = 1;</code>
       */
      public Builder clearLabelSelector() {
        bitField0_ = (bitField0_ & ~0x00000001);
        labelSelector_ = getDefaultInstance().getLabelSelector();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their labels.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelector = 1;</code>
       */
      public Builder setLabelSelectorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        labelSelector_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fieldSelector_ = "";
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their fields.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string fieldSelector = 2;</code>
       */
      public boolean hasFieldSelector() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their fields.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string fieldSelector = 2;</code>
       */
      public java.lang.String getFieldSelector() {
        java.lang.Object ref = fieldSelector_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fieldSelector_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their fields.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string fieldSelector = 2;</code>
       */
      public com.google.protobuf.ByteString
          getFieldSelectorBytes() {
        java.lang.Object ref = fieldSelector_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          fieldSelector_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their fields.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string fieldSelector = 2;</code>
       */
      public Builder setFieldSelector(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        fieldSelector_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their fields.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string fieldSelector = 2;</code>
       */
      public Builder clearFieldSelector() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fieldSelector_ = getDefaultInstance().getFieldSelector();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A selector to restrict the list of returned objects by their fields.
       * Defaults to everything.
       * +optional
       * </pre>
       *
       * <code>optional string fieldSelector = 2;</code>
       */
      public Builder setFieldSelectorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        fieldSelector_ = value;
        onChanged();
        return this;
      }

      private boolean includeUninitialized_ ;
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 6;</code>
       */
      public boolean hasIncludeUninitialized() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 6;</code>
       */
      public boolean getIncludeUninitialized() {
        return includeUninitialized_;
      }
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 6;</code>
       */
      public Builder setIncludeUninitialized(boolean value) {
        bitField0_ |= 0x00000004;
        includeUninitialized_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 6;</code>
       */
      public Builder clearIncludeUninitialized() {
        bitField0_ = (bitField0_ & ~0x00000004);
        includeUninitialized_ = false;
        onChanged();
        return this;
      }

      private boolean watch_ ;
      /**
       * <pre>
       * Watch for changes to the described resources and return them as a stream of
       * add, update, and remove notifications. Specify resourceVersion.
       * +optional
       * </pre>
       *
       * <code>optional bool watch = 3;</code>
       */
      public boolean hasWatch() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * Watch for changes to the described resources and return them as a stream of
       * add, update, and remove notifications. Specify resourceVersion.
       * +optional
       * </pre>
       *
       * <code>optional bool watch = 3;</code>
       */
      public boolean getWatch() {
        return watch_;
      }
      /**
       * <pre>
       * Watch for changes to the described resources and return them as a stream of
       * add, update, and remove notifications. Specify resourceVersion.
       * +optional
       * </pre>
       *
       * <code>optional bool watch = 3;</code>
       */
      public Builder setWatch(boolean value) {
        bitField0_ |= 0x00000008;
        watch_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Watch for changes to the described resources and return them as a stream of
       * add, update, and remove notifications. Specify resourceVersion.
       * +optional
       * </pre>
       *
       * <code>optional bool watch = 3;</code>
       */
      public Builder clearWatch() {
        bitField0_ = (bitField0_ & ~0x00000008);
        watch_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object resourceVersion_ = "";
      /**
       * <pre>
       * When specified with a watch call, shows changes that occur after that particular version of a resource.
       * Defaults to changes from the beginning of history.
       * When specified for list:
       * - if unset, then the result is returned from remote storage based on quorum-read flag;
       * - if it's 0, then we simply return what we currently have in cache, no guarantee;
       * - if set to non zero, then the result is at least as fresh as given rv.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public boolean hasResourceVersion() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * When specified with a watch call, shows changes that occur after that particular version of a resource.
       * Defaults to changes from the beginning of history.
       * When specified for list:
       * - if unset, then the result is returned from remote storage based on quorum-read flag;
       * - if it's 0, then we simply return what we currently have in cache, no guarantee;
       * - if set to non zero, then the result is at least as fresh as given rv.
       * +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>
       * When specified with a watch call, shows changes that occur after that particular version of a resource.
       * Defaults to changes from the beginning of history.
       * When specified for list:
       * - if unset, then the result is returned from remote storage based on quorum-read flag;
       * - if it's 0, then we simply return what we currently have in cache, no guarantee;
       * - if set to non zero, then the result is at least as fresh as given rv.
       * +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>
       * When specified with a watch call, shows changes that occur after that particular version of a resource.
       * Defaults to changes from the beginning of history.
       * When specified for list:
       * - if unset, then the result is returned from remote storage based on quorum-read flag;
       * - if it's 0, then we simply return what we currently have in cache, no guarantee;
       * - if set to non zero, then the result is at least as fresh as given rv.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public Builder setResourceVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        resourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When specified with a watch call, shows changes that occur after that particular version of a resource.
       * Defaults to changes from the beginning of history.
       * When specified for list:
       * - if unset, then the result is returned from remote storage based on quorum-read flag;
       * - if it's 0, then we simply return what we currently have in cache, no guarantee;
       * - if set to non zero, then the result is at least as fresh as given rv.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public Builder clearResourceVersion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        resourceVersion_ = getDefaultInstance().getResourceVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When specified with a watch call, shows changes that occur after that particular version of a resource.
       * Defaults to changes from the beginning of history.
       * When specified for list:
       * - if unset, then the result is returned from remote storage based on quorum-read flag;
       * - if it's 0, then we simply return what we currently have in cache, no guarantee;
       * - if set to non zero, then the result is at least as fresh as given rv.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public Builder setResourceVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        resourceVersion_ = value;
        onChanged();
        return this;
      }

      private long timeoutSeconds_ ;
      /**
       * <pre>
       * Timeout for the list/watch call.
       * +optional
       * </pre>
       *
       * <code>optional int64 timeoutSeconds = 5;</code>
       */
      public boolean hasTimeoutSeconds() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       * Timeout for the list/watch call.
       * +optional
       * </pre>
       *
       * <code>optional int64 timeoutSeconds = 5;</code>
       */
      public long getTimeoutSeconds() {
        return timeoutSeconds_;
      }
      /**
       * <pre>
       * Timeout for the list/watch call.
       * +optional
       * </pre>
       *
       * <code>optional int64 timeoutSeconds = 5;</code>
       */
      public Builder setTimeoutSeconds(long value) {
        bitField0_ |= 0x00000020;
        timeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Timeout for the list/watch call.
       * +optional
       * </pre>
       *
       * <code>optional int64 timeoutSeconds = 5;</code>
       */
      public Builder clearTimeoutSeconds() {
        bitField0_ = (bitField0_ & ~0x00000020);
        timeoutSeconds_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ListOptions)
    private static final io.kubernetes.client.proto.V1.ListOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ListOptions();
    }

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

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

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

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

    public io.kubernetes.client.proto.V1.ListOptions 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor;
      }

      public io.kubernetes.client.proto.V1.LoadBalancerIngress getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LoadBalancerIngress.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LoadBalancerIngress build() {
        io.kubernetes.client.proto.V1.LoadBalancerIngress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (ingressBuilder_ == null) {
          ingress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          ingressBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.LoadBalancerStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LoadBalancerStatus build() {
        io.kubernetes.client.proto.V1.LoadBalancerStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor;
      }

      public io.kubernetes.client.proto.V1.LocalObjectReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LocalObjectReference build() {
        io.kubernetes.client.proto.V1.LocalObjectReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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
     * For alpha, this path must be a directory
     * Once block as a source is supported, then this path can point to a block device
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     * <pre>
     * The full path to the volume on the node
     * For alpha, this path must be a directory
     * Once block as a source is supported, then this path can point to a block device
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     * <pre>
     * The full path to the volume on the node
     * For alpha, this path must be a directory
     * Once block as a source is supported, then this path can point to a block device
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString
        getPathBytes();
  }
  /**
   * <pre>
   * Local represents directly-attached storage with node affinity
   * </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_ = "";
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              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;
    }

    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
     * For alpha, this path must be a directory
     * Once block as a source is supported, then this path can point to a block device
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * The full path to the volume on the node
     * For alpha, this path must be a directory
     * Once block as a source is supported, then this path can point to a block device
     * </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
     * For alpha, this path must be a directory
     * Once block as a source is supported, then this path can point to a block device
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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.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 && 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.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);
    }

    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);
    }
    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
     * </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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.LocalVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.LocalVolumeSource build() {
        io.kubernetes.client.proto.V1.LocalVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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
       * For alpha, this path must be a directory
       * Once block as a source is supported, then this path can point to a block device
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The full path to the volume on the node
       * For alpha, this path must be a directory
       * Once block as a source is supported, then this path can point to a block device
       * </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
       * For alpha, this path must be a directory
       * Once block as a source is supported, then this path can point to a block device
       * </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
       * For alpha, this path must be a directory
       * Once block as a source is supported, then this path can point to a block device
       * </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
       * For alpha, this path must be a directory
       * Once block as a source is supported, then this path can point to a block device
       * </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
       * For alpha, this path must be a directory
       * Once block as a source is supported, then this path can point to a block device
       * </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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        server_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.NFSVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NFSVolumeSource build() {
        io.kubernetes.client.proto.V1.NFSVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Namespace_descriptor;
      }

      public io.kubernetes.client.proto.V1.Namespace getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Namespace.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Namespace build() {
        io.kubernetes.client.proto.V1.Namespace result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NamespaceList_descriptor;
      }

      public io.kubernetes.client.proto.V1.NamespaceList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NamespaceList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NamespaceList build() {
        io.kubernetes.client.proto.V1.NamespaceList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    public com.google.protobuf.ByteString
        getFinalizersBytes(int index) {
      return finalizers_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.NamespaceSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NamespaceSpec build() {
        io.kubernetes.client.proto.V1.NamespaceSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers
       * +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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    boolean hasPhase();
    /**
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
     * +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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              phase_ = bs;
              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;
    }

    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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
     * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
     * +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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.NamespaceStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NamespaceStatus build() {
        io.kubernetes.client.proto.V1.NamespaceStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
       * +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://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases
       * +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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Node_descriptor;
      }

      public io.kubernetes.client.proto.V1.Node getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Node.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Node build() {
        io.kubernetes.client.proto.V1.Node result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        address_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeAddress_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeAddress getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeAddress.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeAddress build() {
        io.kubernetes.client.proto.V1.NodeAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeAffinity build() {
        io.kubernetes.client.proto.V1.NodeAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeCondition_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeCondition.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeCondition build() {
        io.kubernetes.client.proto.V1.NodeCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.NodeCondition 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getKubeletEndpoint());
      }
      unknownFields.writeTo(output);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (kubeletEndpointBuilder_ == null) {
          kubeletEndpoint_ = null;
        } else {
          kubeletEndpointBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints build() {
        io.kubernetes.client.proto.V1.NodeDaemonEndpoints result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeList_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeList build() {
        io.kubernetes.client.proto.V1.NodeList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeProxyOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeProxyOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeProxyOptions build() {
        io.kubernetes.client.proto.V1.NodeProxyOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetCapacity();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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);
        }
      }
      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) {
        }
      }
      public Builder clear() {
        super.clear();
        internalGetMutableCapacity().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeResources_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeResources getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeResources.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeResources build() {
        io.kubernetes.client.proto.V1.NodeResources result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (nodeSelectorTermsBuilder_ == null) {
          nodeSelectorTerms_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          nodeSelectorTermsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSelector_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeSelector build() {
        io.kubernetes.client.proto.V1.NodeSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <pre>
     * The label key that the selector applies to.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <pre>
     * The label key that the selector applies to.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * The label key that the selector applies to.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        operator_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeSelectorRequirement getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeSelectorRequirement build() {
        io.kubernetes.client.proto.V1.NodeSelectorRequirement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The label key that the selector applies to.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement> 
        getMatchExpressionsList();
    /**
     * <pre>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchExpressions(int index);
    /**
     * <pre>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    int getMatchExpressionsCount();
    /**
     * <pre>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder> 
        getMatchExpressionsOrBuilderList();
    /**
     * <pre>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder getMatchExpressionsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * A null or empty node selector term matches no objects.
   * </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();
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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_NodeSelectorTerm_descriptor;
    }

    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>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </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>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </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>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    public int getMatchExpressionsCount() {
      return matchExpressions_.size();
    }
    /**
     * <pre>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </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>
     * Required. A list of node selector requirements. The requirements are ANDed.
     * </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);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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.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 && 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.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);
    }

    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);
    }
    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.
     * </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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          matchExpressionsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeSelectorTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeSelectorTerm build() {
        io.kubernetes.client.proto.V1.NodeSelectorTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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>
       * Required. A list of node selector requirements. The requirements are ANDed.
       * </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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * External ID of the node assigned by some machine database (e.g. a cloud provider).
     * Deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    boolean hasExternalID();
    /**
     * <pre>
     * External ID of the node assigned by some machine database (e.g. a cloud provider).
     * Deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    java.lang.String getExternalID();
    /**
     * <pre>
     * External ID of the node assigned by some machine database (e.g. a cloud provider).
     * Deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    com.google.protobuf.ByteString
        getExternalIDBytes();

    /**
     * <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>
   * 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_ = "";
      externalID_ = "";
      providerID_ = "";
      unschedulable_ = false;
      taints_ = java.util.Collections.emptyList();
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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_ |= 0x00000002;
              externalID_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              providerID_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              unschedulable_ = input.readBool();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                taints_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Taint>();
                mutable_bitField0_ |= 0x00000010;
              }
              taints_.add(
                  input.readMessage(io.kubernetes.client.proto.V1.Taint.PARSER, extensionRegistry));
              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)) {
          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;
    }

    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 EXTERNALID_FIELD_NUMBER = 2;
    private volatile java.lang.Object externalID_;
    /**
     * <pre>
     * External ID of the node assigned by some machine database (e.g. a cloud provider).
     * Deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    public boolean hasExternalID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * External ID of the node assigned by some machine database (e.g. a cloud provider).
     * Deprecated.
     * +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>
     * External ID of the node assigned by some machine database (e.g. a cloud provider).
     * Deprecated.
     * +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;
      }
    }

    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_ & 0x00000004) == 0x00000004);
    }
    /**
     * <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_ & 0x00000008) == 0x00000008);
    }
    /**
     * <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);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, externalID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, providerID_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, unschedulable_);
      }
      for (int i = 0; i < taints_.size(); i++) {
        output.writeMessage(5, taints_.get(i));
      }
      unknownFields.writeTo(output);
    }

    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_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, externalID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, providerID_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        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));
      }
      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 && (hasExternalID() == other.hasExternalID());
      if (hasExternalID()) {
        result = result && getExternalID()
            .equals(other.getExternalID());
      }
      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 && 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 (hasExternalID()) {
        hash = (37 * hash) + EXTERNALID_FIELD_NUMBER;
        hash = (53 * hash) + getExternalID().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();
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        podCIDR_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        externalID_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        providerID_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        unschedulable_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (taintsBuilder_ == null) {
          taints_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          taintsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeSpec build() {
        io.kubernetes.client.proto.V1.NodeSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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.externalID_ = externalID_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.providerID_ = providerID_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.unschedulable_ = unschedulable_;
        if (taintsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            taints_ = java.util.Collections.unmodifiableList(taints_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.taints_ = taints_;
        } else {
          result.taints_ = taintsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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.hasExternalID()) {
          bitField0_ |= 0x00000002;
          externalID_ = other.externalID_;
          onChanged();
        }
        if (other.hasProviderID()) {
          bitField0_ |= 0x00000004;
          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_ & ~0x00000010);
            } else {
              ensureTaintsIsMutable();
              taints_.addAll(other.taints_);
            }
            onChanged();
          }
        } else {
          if (!other.taints_.isEmpty()) {
            if (taintsBuilder_.isEmpty()) {
              taintsBuilder_.dispose();
              taintsBuilder_ = null;
              taints_ = other.taints_;
              bitField0_ = (bitField0_ & ~0x00000010);
              taintsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getTaintsFieldBuilder() : null;
            } else {
              taintsBuilder_.addAllMessages(other.taints_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 externalID_ = "";
      /**
       * <pre>
       * External ID of the node assigned by some machine database (e.g. a cloud provider).
       * Deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public boolean hasExternalID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * External ID of the node assigned by some machine database (e.g. a cloud provider).
       * Deprecated.
       * +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>
       * External ID of the node assigned by some machine database (e.g. a cloud provider).
       * Deprecated.
       * +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>
       * External ID of the node assigned by some machine database (e.g. a cloud provider).
       * Deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public Builder setExternalID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        externalID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * External ID of the node assigned by some machine database (e.g. a cloud provider).
       * Deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public Builder clearExternalID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        externalID_ = getDefaultInstance().getExternalID();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * External ID of the node assigned by some machine database (e.g. a cloud provider).
       * Deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public Builder setExternalIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        externalID_ = 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_ & 0x00000004) == 0x00000004);
      }
      /**
       * <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_ |= 0x00000004;
        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_ & ~0x00000004);
        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_ |= 0x00000004;
        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_ & 0x00000008) == 0x00000008);
      }
      /**
       * <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_ |= 0x00000008;
        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_ & ~0x00000008);
        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_ & 0x00000010) == 0x00000010)) {
          taints_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Taint>(taints_);
          bitField0_ |= 0x00000010;
         }
      }

      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_ & ~0x00000010);
          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_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          taints_ = null;
        }
        return taintsBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
   * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    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);
      }
    }
    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);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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));
      }
      unknownFields.writeTo(output);
    }

    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));
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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);
        }
      }
      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();
        }
      }
      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();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeStatus build() {
        io.kubernetes.client.proto.V1.NodeStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor;
      }

      public io.kubernetes.client.proto.V1.NodeSystemInfo getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.NodeSystemInfo build() {
        io.kubernetes.client.proto.V1.NodeSystemInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        apiVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fieldPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor;
      }

      public io.kubernetes.client.proto.V1.ObjectFieldSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ObjectFieldSelector build() {
        io.kubernetes.client.proto.V1.ObjectFieldSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.ObjectFieldSelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     * Name must be unique within a namespace. Is required when creating resources, although
     * some resources may allow a client to request the generation of an appropriate name
     * automatically. Name is primarily intended for creation idempotence and configuration
     * definition.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     * <pre>
     * Name must be unique within a namespace. Is required when creating resources, although
     * some resources may allow a client to request the generation of an appropriate name
     * automatically. Name is primarily intended for creation idempotence and configuration
     * definition.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * Name must be unique within a namespace. Is required when creating resources, although
     * some resources may allow a client to request the generation of an appropriate name
     * automatically. Name is primarily intended for creation idempotence and configuration
     * definition.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * GenerateName is an optional prefix, used by the server, to generate a unique
     * name ONLY IF the Name field has not been provided.
     * If this field is used, the name returned to the client will be different
     * than the name passed. This value will also be combined with a unique suffix.
     * The provided value has the same validation rules as the Name field,
     * and may be truncated by the length of the suffix required to make the value
     * unique on the server.
     * 
     * If this field is specified and the generated name exists, the server will
     * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
     * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
     * should retry (optionally after the time indicated in the Retry-After header).
     * 
     * Applied only if Name is not specified.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
     * +optional
     * </pre>
     *
     * <code>optional string generateName = 2;</code>
     */
    boolean hasGenerateName();
    /**
     * <pre>
     * GenerateName is an optional prefix, used by the server, to generate a unique
     * name ONLY IF the Name field has not been provided.
     * If this field is used, the name returned to the client will be different
     * than the name passed. This value will also be combined with a unique suffix.
     * The provided value has the same validation rules as the Name field,
     * and may be truncated by the length of the suffix required to make the value
     * unique on the server.
     * 
     * If this field is specified and the generated name exists, the server will
     * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
     * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
     * should retry (optionally after the time indicated in the Retry-After header).
     * 
     * Applied only if Name is not specified.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
     * +optional
     * </pre>
     *
     * <code>optional string generateName = 2;</code>
     */
    java.lang.String getGenerateName();
    /**
     * <pre>
     * GenerateName is an optional prefix, used by the server, to generate a unique
     * name ONLY IF the Name field has not been provided.
     * If this field is used, the name returned to the client will be different
     * than the name passed. This value will also be combined with a unique suffix.
     * The provided value has the same validation rules as the Name field,
     * and may be truncated by the length of the suffix required to make the value
     * unique on the server.
     * 
     * If this field is specified and the generated name exists, the server will
     * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
     * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
     * should retry (optionally after the time indicated in the Retry-After header).
     * 
     * Applied only if Name is not specified.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
     * +optional
     * </pre>
     *
     * <code>optional string generateName = 2;</code>
     */
    com.google.protobuf.ByteString
        getGenerateNameBytes();

    /**
     * <pre>
     * Namespace defines the space within each name must be unique. An empty namespace is
     * equivalent to the "default" namespace, but "default" is the canonical representation.
     * Not all objects are required to be scoped to a namespace - the value of this field for
     * those objects will be empty.
     * 
     * Must be a DNS_LABEL.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    boolean hasNamespace();
    /**
     * <pre>
     * Namespace defines the space within each name must be unique. An empty namespace is
     * equivalent to the "default" namespace, but "default" is the canonical representation.
     * Not all objects are required to be scoped to a namespace - the value of this field for
     * those objects will be empty.
     * 
     * Must be a DNS_LABEL.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    java.lang.String getNamespace();
    /**
     * <pre>
     * Namespace defines the space within each name must be unique. An empty namespace is
     * equivalent to the "default" namespace, but "default" is the canonical representation.
     * Not all objects are required to be scoped to a namespace - the value of this field for
     * those objects will be empty.
     * 
     * Must be a DNS_LABEL.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    com.google.protobuf.ByteString
        getNamespaceBytes();

    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 4;</code>
     */
    boolean hasSelfLink();
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 4;</code>
     */
    java.lang.String getSelfLink();
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 4;</code>
     */
    com.google.protobuf.ByteString
        getSelfLinkBytes();

    /**
     * <pre>
     * UID is the unique in time and space value for this object. It is typically generated by
     * the server on successful creation of a resource and is not allowed to change on PUT
     * operations.
     * 
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 5;</code>
     */
    boolean hasUid();
    /**
     * <pre>
     * UID is the unique in time and space value for this object. It is typically generated by
     * the server on successful creation of a resource and is not allowed to change on PUT
     * operations.
     * 
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 5;</code>
     */
    java.lang.String getUid();
    /**
     * <pre>
     * UID is the unique in time and space value for this object. It is typically generated by
     * the server on successful creation of a resource and is not allowed to change on PUT
     * operations.
     * 
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 5;</code>
     */
    com.google.protobuf.ByteString
        getUidBytes();

    /**
     * <pre>
     * An opaque value that represents the internal version of this object that can
     * be used by clients to determine when objects have changed. May be used for optimistic
     * concurrency, change detection, and the watch operation on a resource or set of resources.
     * Clients must treat these values as opaque and passed unmodified back to the server.
     * They may only be valid for a particular resource or set of resources.
     * 
     * Populated by the system.
     * Read-only.
     * Value must be treated as opaque by clients and .
     * 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>
     * An opaque value that represents the internal version of this object that can
     * be used by clients to determine when objects have changed. May be used for optimistic
     * concurrency, change detection, and the watch operation on a resource or set of resources.
     * Clients must treat these values as opaque and passed unmodified back to the server.
     * They may only be valid for a particular resource or set of resources.
     * 
     * Populated by the system.
     * Read-only.
     * Value must be treated as opaque by clients and .
     * 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>
     * An opaque value that represents the internal version of this object that can
     * be used by clients to determine when objects have changed. May be used for optimistic
     * concurrency, change detection, and the watch operation on a resource or set of resources.
     * Clients must treat these values as opaque and passed unmodified back to the server.
     * They may only be valid for a particular resource or set of resources.
     * 
     * Populated by the system.
     * Read-only.
     * Value must be treated as opaque by clients and .
     * 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>
     * A sequence number representing a specific generation of the desired state.
     * Populated by the system. Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 generation = 7;</code>
     */
    boolean hasGeneration();
    /**
     * <pre>
     * A sequence number representing a specific generation of the desired state.
     * Populated by the system. Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 generation = 7;</code>
     */
    long getGeneration();

    /**
     * <pre>
     * CreationTimestamp is a timestamp representing the server time when this object was
     * created. It is not guaranteed to be set in happens-before order across separate operations.
     * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
     * 
     * Populated by the system.
     * Read-only.
     * Null for lists.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
     */
    boolean hasCreationTimestamp();
    /**
     * <pre>
     * CreationTimestamp is a timestamp representing the server time when this object was
     * created. It is not guaranteed to be set in happens-before order across separate operations.
     * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
     * 
     * Populated by the system.
     * Read-only.
     * Null for lists.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
     */
    io.kubernetes.client.proto.Meta.Time getCreationTimestamp();
    /**
     * <pre>
     * CreationTimestamp is a timestamp representing the server time when this object was
     * created. It is not guaranteed to be set in happens-before order across separate operations.
     * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
     * 
     * Populated by the system.
     * Read-only.
     * Null for lists.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getCreationTimestampOrBuilder();

    /**
     * <pre>
     * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
     * field is set by the server when a graceful deletion is requested by the user, and is not
     * directly settable by a client. The resource is expected to be deleted (no longer visible
     * from resource lists, and not reachable by name) after the time in this field. Once set,
     * this value may not be unset or be set further into the future, although it may be shortened
     * or the resource may be deleted prior to this time. For example, a user may request that
     * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
     * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
     * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
     * API. In the presence of network partitions, this object may still exist after this
     * timestamp, until an administrator or automated process can determine the resource is
     * fully terminated.
     * If not set, graceful deletion of the object has not been requested.
     * 
     * Populated by the system when a graceful deletion is requested.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
     */
    boolean hasDeletionTimestamp();
    /**
     * <pre>
     * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
     * field is set by the server when a graceful deletion is requested by the user, and is not
     * directly settable by a client. The resource is expected to be deleted (no longer visible
     * from resource lists, and not reachable by name) after the time in this field. Once set,
     * this value may not be unset or be set further into the future, although it may be shortened
     * or the resource may be deleted prior to this time. For example, a user may request that
     * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
     * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
     * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
     * API. In the presence of network partitions, this object may still exist after this
     * timestamp, until an administrator or automated process can determine the resource is
     * fully terminated.
     * If not set, graceful deletion of the object has not been requested.
     * 
     * Populated by the system when a graceful deletion is requested.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
     */
    io.kubernetes.client.proto.Meta.Time getDeletionTimestamp();
    /**
     * <pre>
     * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
     * field is set by the server when a graceful deletion is requested by the user, and is not
     * directly settable by a client. The resource is expected to be deleted (no longer visible
     * from resource lists, and not reachable by name) after the time in this field. Once set,
     * this value may not be unset or be set further into the future, although it may be shortened
     * or the resource may be deleted prior to this time. For example, a user may request that
     * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
     * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
     * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
     * API. In the presence of network partitions, this object may still exist after this
     * timestamp, until an administrator or automated process can determine the resource is
     * fully terminated.
     * If not set, graceful deletion of the object has not been requested.
     * 
     * Populated by the system when a graceful deletion is requested.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getDeletionTimestampOrBuilder();

    /**
     * <pre>
     * Number of seconds allowed for this object to gracefully terminate before
     * it will be removed from the system. Only set when deletionTimestamp is also set.
     * May only be shortened.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
     */
    boolean hasDeletionGracePeriodSeconds();
    /**
     * <pre>
     * Number of seconds allowed for this object to gracefully terminate before
     * it will be removed from the system. Only set when deletionTimestamp is also set.
     * May only be shortened.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
     */
    long getDeletionGracePeriodSeconds();

    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */
    int getLabelsCount();
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */
    boolean containsLabels(
        java.lang.String key);
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getLabels();
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getLabelsMap();
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */

    java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */

    java.lang.String getLabelsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */
    int getAnnotationsCount();
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */
    boolean containsAnnotations(
        java.lang.String key);
    /**
     * Use {@link #getAnnotationsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAnnotations();
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAnnotationsMap();
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */

    java.lang.String getAnnotationsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */

    java.lang.String getAnnotationsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.OwnerReference> 
        getOwnerReferencesList();
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    io.kubernetes.client.proto.Meta.OwnerReference getOwnerReferences(int index);
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    int getOwnerReferencesCount();
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder> 
        getOwnerReferencesOrBuilderList();
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder getOwnerReferencesOrBuilder(
        int index);

    /**
     * <pre>
     * An initializer is a controller which enforces some system invariant at object creation time.
     * This field is a list of initializers that have not yet acted on this object. If nil or empty,
     * this object has been completely initialized. Otherwise, the object is considered uninitialized
     * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
     * observe uninitialized objects.
     * 
     * When an object is created, the system will populate this list with the current set of initializers.
     * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
     * by any user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
     */
    boolean hasInitializers();
    /**
     * <pre>
     * An initializer is a controller which enforces some system invariant at object creation time.
     * This field is a list of initializers that have not yet acted on this object. If nil or empty,
     * this object has been completely initialized. Otherwise, the object is considered uninitialized
     * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
     * observe uninitialized objects.
     * 
     * When an object is created, the system will populate this list with the current set of initializers.
     * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
     * by any user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
     */
    io.kubernetes.client.proto.Meta.Initializers getInitializers();
    /**
     * <pre>
     * An initializer is a controller which enforces some system invariant at object creation time.
     * This field is a list of initializers that have not yet acted on this object. If nil or empty,
     * this object has been completely initialized. Otherwise, the object is considered uninitialized
     * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
     * observe uninitialized objects.
     * 
     * When an object is created, the system will populate this list with the current set of initializers.
     * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
     * by any user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
     */
    io.kubernetes.client.proto.Meta.InitializersOrBuilder getInitializersOrBuilder();

    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    java.util.List<java.lang.String>
        getFinalizersList();
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    int getFinalizersCount();
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    java.lang.String getFinalizers(int index);
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    com.google.protobuf.ByteString
        getFinalizersBytes(int index);

    /**
     * <pre>
     * The name of the cluster which the object belongs to.
     * This is used to distinguish resources with same name and namespace in different clusters.
     * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
     * +optional
     * </pre>
     *
     * <code>optional string clusterName = 15;</code>
     */
    boolean hasClusterName();
    /**
     * <pre>
     * The name of the cluster which the object belongs to.
     * This is used to distinguish resources with same name and namespace in different clusters.
     * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
     * +optional
     * </pre>
     *
     * <code>optional string clusterName = 15;</code>
     */
    java.lang.String getClusterName();
    /**
     * <pre>
     * The name of the cluster which the object belongs to.
     * This is used to distinguish resources with same name and namespace in different clusters.
     * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
     * +optional
     * </pre>
     *
     * <code>optional string clusterName = 15;</code>
     */
    com.google.protobuf.ByteString
        getClusterNameBytes();
  }
  /**
   * <pre>
   * ObjectMeta is metadata that all persisted resources must have, which includes all objects
   * users must create.
   * DEPRECATED: Use k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta instead - this type will be removed soon.
   * +k8s:openapi-gen=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ObjectMeta}
   */
  public  static final class ObjectMeta extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ObjectMeta)
      ObjectMetaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ObjectMeta.newBuilder() to construct.
    private ObjectMeta(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ObjectMeta() {
      name_ = "";
      generateName_ = "";
      namespace_ = "";
      selfLink_ = "";
      uid_ = "";
      resourceVersion_ = "";
      generation_ = 0L;
      deletionGracePeriodSeconds_ = 0L;
      ownerReferences_ = java.util.Collections.emptyList();
      finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      clusterName_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ObjectMeta(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
              generateName_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              namespace_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              selfLink_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              uid_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              resourceVersion_ = bs;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              generation_ = input.readInt64();
              break;
            }
            case 66: {
              io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = creationTimestamp_.toBuilder();
              }
              creationTimestamp_ = input.readMessage(io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(creationTimestamp_);
                creationTimestamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = deletionTimestamp_.toBuilder();
              }
              deletionTimestamp_ = input.readMessage(io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(deletionTimestamp_);
                deletionTimestamp_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              deletionGracePeriodSeconds_ = input.readInt64();
              break;
            }
            case 90: {
              if (!((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
                labels_ = com.google.protobuf.MapField.newMapField(
                    LabelsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000400;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              labels__ = input.readMessage(
                  LabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              labels_.getMutableMap().put(
                  labels__.getKey(), labels__.getValue());
              break;
            }
            case 98: {
              if (!((mutable_bitField0_ & 0x00000800) == 0x00000800)) {
                annotations_ = com.google.protobuf.MapField.newMapField(
                    AnnotationsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000800;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              annotations__ = input.readMessage(
                  AnnotationsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              annotations_.getMutableMap().put(
                  annotations__.getKey(), annotations__.getValue());
              break;
            }
            case 106: {
              if (!((mutable_bitField0_ & 0x00001000) == 0x00001000)) {
                ownerReferences_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.OwnerReference>();
                mutable_bitField0_ |= 0x00001000;
              }
              ownerReferences_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.OwnerReference.PARSER, extensionRegistry));
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00004000) == 0x00004000)) {
                finalizers_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00004000;
              }
              finalizers_.add(bs);
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              clusterName_ = bs;
              break;
            }
            case 130: {
              io.kubernetes.client.proto.Meta.Initializers.Builder subBuilder = null;
              if (((bitField0_ & 0x00000400) == 0x00000400)) {
                subBuilder = initializers_.toBuilder();
              }
              initializers_ = input.readMessage(io.kubernetes.client.proto.Meta.Initializers.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(initializers_);
                initializers_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000400;
              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_ & 0x00001000) == 0x00001000)) {
          ownerReferences_ = java.util.Collections.unmodifiableList(ownerReferences_);
        }
        if (((mutable_bitField0_ & 0x00004000) == 0x00004000)) {
          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_ObjectMeta_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 11:
          return internalGetLabels();
        case 12:
          return internalGetAnnotations();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ObjectMeta_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ObjectMeta.class, io.kubernetes.client.proto.V1.ObjectMeta.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * Name must be unique within a namespace. Is required when creating resources, although
     * some resources may allow a client to request the generation of an appropriate name
     * automatically. Name is primarily intended for creation idempotence and configuration
     * definition.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Name must be unique within a namespace. Is required when creating resources, although
     * some resources may allow a client to request the generation of an appropriate name
     * automatically. Name is primarily intended for creation idempotence and configuration
     * definition.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +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 must be unique within a namespace. Is required when creating resources, although
     * some resources may allow a client to request the generation of an appropriate name
     * automatically. Name is primarily intended for creation idempotence and configuration
     * definition.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +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 GENERATENAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object generateName_;
    /**
     * <pre>
     * GenerateName is an optional prefix, used by the server, to generate a unique
     * name ONLY IF the Name field has not been provided.
     * If this field is used, the name returned to the client will be different
     * than the name passed. This value will also be combined with a unique suffix.
     * The provided value has the same validation rules as the Name field,
     * and may be truncated by the length of the suffix required to make the value
     * unique on the server.
     * 
     * If this field is specified and the generated name exists, the server will
     * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
     * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
     * should retry (optionally after the time indicated in the Retry-After header).
     * 
     * Applied only if Name is not specified.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
     * +optional
     * </pre>
     *
     * <code>optional string generateName = 2;</code>
     */
    public boolean hasGenerateName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * GenerateName is an optional prefix, used by the server, to generate a unique
     * name ONLY IF the Name field has not been provided.
     * If this field is used, the name returned to the client will be different
     * than the name passed. This value will also be combined with a unique suffix.
     * The provided value has the same validation rules as the Name field,
     * and may be truncated by the length of the suffix required to make the value
     * unique on the server.
     * 
     * If this field is specified and the generated name exists, the server will
     * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
     * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
     * should retry (optionally after the time indicated in the Retry-After header).
     * 
     * Applied only if Name is not specified.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
     * +optional
     * </pre>
     *
     * <code>optional string generateName = 2;</code>
     */
    public java.lang.String getGenerateName() {
      java.lang.Object ref = generateName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          generateName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * GenerateName is an optional prefix, used by the server, to generate a unique
     * name ONLY IF the Name field has not been provided.
     * If this field is used, the name returned to the client will be different
     * than the name passed. This value will also be combined with a unique suffix.
     * The provided value has the same validation rules as the Name field,
     * and may be truncated by the length of the suffix required to make the value
     * unique on the server.
     * 
     * If this field is specified and the generated name exists, the server will
     * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
     * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
     * should retry (optionally after the time indicated in the Retry-After header).
     * 
     * Applied only if Name is not specified.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
     * +optional
     * </pre>
     *
     * <code>optional string generateName = 2;</code>
     */
    public com.google.protobuf.ByteString
        getGenerateNameBytes() {
      java.lang.Object ref = generateName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        generateName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAMESPACE_FIELD_NUMBER = 3;
    private volatile java.lang.Object namespace_;
    /**
     * <pre>
     * Namespace defines the space within each name must be unique. An empty namespace is
     * equivalent to the "default" namespace, but "default" is the canonical representation.
     * Not all objects are required to be scoped to a namespace - the value of this field for
     * those objects will be empty.
     * 
     * Must be a DNS_LABEL.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</code>
     */
    public boolean hasNamespace() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * Namespace defines the space within each name must be unique. An empty namespace is
     * equivalent to the "default" namespace, but "default" is the canonical representation.
     * Not all objects are required to be scoped to a namespace - the value of this field for
     * those objects will be empty.
     * 
     * Must be a DNS_LABEL.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</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 each name must be unique. An empty namespace is
     * equivalent to the "default" namespace, but "default" is the canonical representation.
     * Not all objects are required to be scoped to a namespace - the value of this field for
     * those objects will be empty.
     * 
     * Must be a DNS_LABEL.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 3;</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 SELFLINK_FIELD_NUMBER = 4;
    private volatile java.lang.Object selfLink_;
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 4;</code>
     */
    public boolean hasSelfLink() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 4;</code>
     */
    public java.lang.String getSelfLink() {
      java.lang.Object ref = selfLink_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          selfLink_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 4;</code>
     */
    public com.google.protobuf.ByteString
        getSelfLinkBytes() {
      java.lang.Object ref = selfLink_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        selfLink_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UID_FIELD_NUMBER = 5;
    private volatile java.lang.Object uid_;
    /**
     * <pre>
     * UID is the unique in time and space value for this object. It is typically generated by
     * the server on successful creation of a resource and is not allowed to change on PUT
     * operations.
     * 
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 5;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * UID is the unique in time and space value for this object. It is typically generated by
     * the server on successful creation of a resource and is not allowed to change on PUT
     * operations.
     * 
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 5;</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 unique in time and space value for this object. It is typically generated by
     * the server on successful creation of a resource and is not allowed to change on PUT
     * operations.
     * 
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 5;</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 = 6;
    private volatile java.lang.Object resourceVersion_;
    /**
     * <pre>
     * An opaque value that represents the internal version of this object that can
     * be used by clients to determine when objects have changed. May be used for optimistic
     * concurrency, change detection, and the watch operation on a resource or set of resources.
     * Clients must treat these values as opaque and passed unmodified back to the server.
     * They may only be valid for a particular resource or set of resources.
     * 
     * Populated by the system.
     * Read-only.
     * Value must be treated as opaque by clients and .
     * 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>
     * An opaque value that represents the internal version of this object that can
     * be used by clients to determine when objects have changed. May be used for optimistic
     * concurrency, change detection, and the watch operation on a resource or set of resources.
     * Clients must treat these values as opaque and passed unmodified back to the server.
     * They may only be valid for a particular resource or set of resources.
     * 
     * Populated by the system.
     * Read-only.
     * Value must be treated as opaque by clients and .
     * 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>
     * An opaque value that represents the internal version of this object that can
     * be used by clients to determine when objects have changed. May be used for optimistic
     * concurrency, change detection, and the watch operation on a resource or set of resources.
     * Clients must treat these values as opaque and passed unmodified back to the server.
     * They may only be valid for a particular resource or set of resources.
     * 
     * Populated by the system.
     * Read-only.
     * Value must be treated as opaque by clients and .
     * 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 GENERATION_FIELD_NUMBER = 7;
    private long generation_;
    /**
     * <pre>
     * A sequence number representing a specific generation of the desired state.
     * Populated by the system. Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 generation = 7;</code>
     */
    public boolean hasGeneration() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <pre>
     * A sequence number representing a specific generation of the desired state.
     * Populated by the system. Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 generation = 7;</code>
     */
    public long getGeneration() {
      return generation_;
    }

    public static final int CREATIONTIMESTAMP_FIELD_NUMBER = 8;
    private io.kubernetes.client.proto.Meta.Time creationTimestamp_;
    /**
     * <pre>
     * CreationTimestamp is a timestamp representing the server time when this object was
     * created. It is not guaranteed to be set in happens-before order across separate operations.
     * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
     * 
     * Populated by the system.
     * Read-only.
     * Null for lists.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
     */
    public boolean hasCreationTimestamp() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <pre>
     * CreationTimestamp is a timestamp representing the server time when this object was
     * created. It is not guaranteed to be set in happens-before order across separate operations.
     * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
     * 
     * Populated by the system.
     * Read-only.
     * Null for lists.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getCreationTimestamp() {
      return creationTimestamp_ == null ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : creationTimestamp_;
    }
    /**
     * <pre>
     * CreationTimestamp is a timestamp representing the server time when this object was
     * created. It is not guaranteed to be set in happens-before order across separate operations.
     * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
     * 
     * Populated by the system.
     * Read-only.
     * Null for lists.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getCreationTimestampOrBuilder() {
      return creationTimestamp_ == null ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : creationTimestamp_;
    }

    public static final int DELETIONTIMESTAMP_FIELD_NUMBER = 9;
    private io.kubernetes.client.proto.Meta.Time deletionTimestamp_;
    /**
     * <pre>
     * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
     * field is set by the server when a graceful deletion is requested by the user, and is not
     * directly settable by a client. The resource is expected to be deleted (no longer visible
     * from resource lists, and not reachable by name) after the time in this field. Once set,
     * this value may not be unset or be set further into the future, although it may be shortened
     * or the resource may be deleted prior to this time. For example, a user may request that
     * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
     * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
     * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
     * API. In the presence of network partitions, this object may still exist after this
     * timestamp, until an administrator or automated process can determine the resource is
     * fully terminated.
     * If not set, graceful deletion of the object has not been requested.
     * 
     * Populated by the system when a graceful deletion is requested.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
     */
    public boolean hasDeletionTimestamp() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <pre>
     * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
     * field is set by the server when a graceful deletion is requested by the user, and is not
     * directly settable by a client. The resource is expected to be deleted (no longer visible
     * from resource lists, and not reachable by name) after the time in this field. Once set,
     * this value may not be unset or be set further into the future, although it may be shortened
     * or the resource may be deleted prior to this time. For example, a user may request that
     * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
     * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
     * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
     * API. In the presence of network partitions, this object may still exist after this
     * timestamp, until an administrator or automated process can determine the resource is
     * fully terminated.
     * If not set, graceful deletion of the object has not been requested.
     * 
     * Populated by the system when a graceful deletion is requested.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getDeletionTimestamp() {
      return deletionTimestamp_ == null ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : deletionTimestamp_;
    }
    /**
     * <pre>
     * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
     * field is set by the server when a graceful deletion is requested by the user, and is not
     * directly settable by a client. The resource is expected to be deleted (no longer visible
     * from resource lists, and not reachable by name) after the time in this field. Once set,
     * this value may not be unset or be set further into the future, although it may be shortened
     * or the resource may be deleted prior to this time. For example, a user may request that
     * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
     * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
     * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
     * API. In the presence of network partitions, this object may still exist after this
     * timestamp, until an administrator or automated process can determine the resource is
     * fully terminated.
     * If not set, graceful deletion of the object has not been requested.
     * 
     * Populated by the system when a graceful deletion is requested.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getDeletionTimestampOrBuilder() {
      return deletionTimestamp_ == null ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : deletionTimestamp_;
    }

    public static final int DELETIONGRACEPERIODSECONDS_FIELD_NUMBER = 10;
    private long deletionGracePeriodSeconds_;
    /**
     * <pre>
     * Number of seconds allowed for this object to gracefully terminate before
     * it will be removed from the system. Only set when deletionTimestamp is also set.
     * May only be shortened.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
     */
    public boolean hasDeletionGracePeriodSeconds() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <pre>
     * Number of seconds allowed for this object to gracefully terminate before
     * it will be removed from the system. Only set when deletionTimestamp is also set.
     * May only be shortened.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
     */
    public long getDeletionGracePeriodSeconds() {
      return deletionGracePeriodSeconds_;
    }

    public static final int LABELS_FIELD_NUMBER = 11;
    private static final class LabelsDefaultEntryHolder {
      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_ObjectMeta_LabelsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> labels_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetLabels() {
      if (labels_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            LabelsDefaultEntryHolder.defaultEntry);
      }
      return labels_;
    }

    public int getLabelsCount() {
      return internalGetLabels().getMap().size();
    }
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */

    public boolean containsLabels(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetLabels().getMap().containsKey(key);
    }
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getLabels() {
      return getLabelsMap();
    }
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getLabelsMap() {
      return internalGetLabels().getMap();
    }
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */

    public java.lang.String getLabelsOrDefault(
        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 =
          internalGetLabels().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects. May match selectors of replication controllers
     * and services.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; labels = 11;</code>
     */

    public java.lang.String getLabelsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetLabels().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ANNOTATIONS_FIELD_NUMBER = 12;
    private static final class AnnotationsDefaultEntryHolder {
      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_ObjectMeta_AnnotationsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> annotations_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAnnotations() {
      if (annotations_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AnnotationsDefaultEntryHolder.defaultEntry);
      }
      return annotations_;
    }

    public int getAnnotationsCount() {
      return internalGetAnnotations().getMap().size();
    }
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */

    public boolean containsAnnotations(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAnnotations().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAnnotationsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAnnotations() {
      return getAnnotationsMap();
    }
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getAnnotationsMap() {
      return internalGetAnnotations().getMap();
    }
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */

    public java.lang.String getAnnotationsOrDefault(
        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 =
          internalGetAnnotations().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; annotations = 12;</code>
     */

    public java.lang.String getAnnotationsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAnnotations().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int OWNERREFERENCES_FIELD_NUMBER = 13;
    private java.util.List<io.kubernetes.client.proto.Meta.OwnerReference> ownerReferences_;
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.OwnerReference> getOwnerReferencesList() {
      return ownerReferences_;
    }
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder> 
        getOwnerReferencesOrBuilderList() {
      return ownerReferences_;
    }
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    public int getOwnerReferencesCount() {
      return ownerReferences_.size();
    }
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    public io.kubernetes.client.proto.Meta.OwnerReference getOwnerReferences(int index) {
      return ownerReferences_.get(index);
    }
    /**
     * <pre>
     * List of objects depended by this object. If ALL objects in the list have
     * been deleted, this object will be garbage collected. If this object is managed by a controller,
     * then an entry in this list will point to this controller, with the controller field set to true.
     * There cannot be more than one managing controller.
     * +optional
     * +patchMergeKey=uid
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
     */
    public io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder getOwnerReferencesOrBuilder(
        int index) {
      return ownerReferences_.get(index);
    }

    public static final int INITIALIZERS_FIELD_NUMBER = 16;
    private io.kubernetes.client.proto.Meta.Initializers initializers_;
    /**
     * <pre>
     * An initializer is a controller which enforces some system invariant at object creation time.
     * This field is a list of initializers that have not yet acted on this object. If nil or empty,
     * this object has been completely initialized. Otherwise, the object is considered uninitialized
     * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
     * observe uninitialized objects.
     * 
     * When an object is created, the system will populate this list with the current set of initializers.
     * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
     * by any user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
     */
    public boolean hasInitializers() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <pre>
     * An initializer is a controller which enforces some system invariant at object creation time.
     * This field is a list of initializers that have not yet acted on this object. If nil or empty,
     * this object has been completely initialized. Otherwise, the object is considered uninitialized
     * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
     * observe uninitialized objects.
     * 
     * When an object is created, the system will populate this list with the current set of initializers.
     * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
     * by any user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
     */
    public io.kubernetes.client.proto.Meta.Initializers getInitializers() {
      return initializers_ == null ? io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance() : initializers_;
    }
    /**
     * <pre>
     * An initializer is a controller which enforces some system invariant at object creation time.
     * This field is a list of initializers that have not yet acted on this object. If nil or empty,
     * this object has been completely initialized. Otherwise, the object is considered uninitialized
     * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
     * observe uninitialized objects.
     * 
     * When an object is created, the system will populate this list with the current set of initializers.
     * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
     * by any user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
     */
    public io.kubernetes.client.proto.Meta.InitializersOrBuilder getInitializersOrBuilder() {
      return initializers_ == null ? io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance() : initializers_;
    }

    public static final int FINALIZERS_FIELD_NUMBER = 14;
    private com.google.protobuf.LazyStringList finalizers_;
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getFinalizersList() {
      return finalizers_;
    }
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    public int getFinalizersCount() {
      return finalizers_.size();
    }
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    public java.lang.String getFinalizers(int index) {
      return finalizers_.get(index);
    }
    /**
     * <pre>
     * Must be empty before the object is deleted from the registry. Each entry
     * is an identifier for the responsible component that will remove the entry
     * from the list. If the deletionTimestamp of the object is non-nil, entries
     * in this list can only be removed.
     * +optional
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated string finalizers = 14;</code>
     */
    public com.google.protobuf.ByteString
        getFinalizersBytes(int index) {
      return finalizers_.getByteString(index);
    }

    public static final int CLUSTERNAME_FIELD_NUMBER = 15;
    private volatile java.lang.Object clusterName_;
    /**
     * <pre>
     * The name of the cluster which the object belongs to.
     * This is used to distinguish resources with same name and namespace in different clusters.
     * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
     * +optional
     * </pre>
     *
     * <code>optional string clusterName = 15;</code>
     */
    public boolean hasClusterName() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * <pre>
     * The name of the cluster which the object belongs to.
     * This is used to distinguish resources with same name and namespace in different clusters.
     * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
     * +optional
     * </pre>
     *
     * <code>optional string clusterName = 15;</code>
     */
    public java.lang.String getClusterName() {
      java.lang.Object ref = clusterName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clusterName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * The name of the cluster which the object belongs to.
     * This is used to distinguish resources with same name and namespace in different clusters.
     * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
     * +optional
     * </pre>
     *
     * <code>optional string clusterName = 15;</code>
     */
    public com.google.protobuf.ByteString
        getClusterNameBytes() {
      java.lang.Object ref = clusterName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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, generateName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, namespace_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, selfLink_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, uid_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, resourceVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt64(7, generation_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, getCreationTimestamp());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, getDeletionTimestamp());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeInt64(10, deletionGracePeriodSeconds_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetLabels(),
          LabelsDefaultEntryHolder.defaultEntry,
          11);
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetAnnotations(),
          AnnotationsDefaultEntryHolder.defaultEntry,
          12);
      for (int i = 0; i < ownerReferences_.size(); i++) {
        output.writeMessage(13, ownerReferences_.get(i));
      }
      for (int i = 0; i < finalizers_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, finalizers_.getRaw(i));
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, clusterName_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(16, getInitializers());
      }
      unknownFields.writeTo(output);
    }

    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, generateName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, namespace_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, selfLink_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, uid_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, resourceVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, generation_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getCreationTimestamp());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getDeletionTimestamp());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, deletionGracePeriodSeconds_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetLabels().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        labels__ = LabelsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(11, labels__);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAnnotations().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        annotations__ = AnnotationsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(12, annotations__);
      }
      for (int i = 0; i < ownerReferences_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, ownerReferences_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < finalizers_.size(); i++) {
          dataSize += computeStringSizeNoTag(finalizers_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getFinalizersList().size();
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, clusterName_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getInitializers());
      }
      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.ObjectMeta)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ObjectMeta other = (io.kubernetes.client.proto.V1.ObjectMeta) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && (hasGenerateName() == other.hasGenerateName());
      if (hasGenerateName()) {
        result = result && getGenerateName()
            .equals(other.getGenerateName());
      }
      result = result && (hasNamespace() == other.hasNamespace());
      if (hasNamespace()) {
        result = result && getNamespace()
            .equals(other.getNamespace());
      }
      result = result && (hasSelfLink() == other.hasSelfLink());
      if (hasSelfLink()) {
        result = result && getSelfLink()
            .equals(other.getSelfLink());
      }
      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 && (hasGeneration() == other.hasGeneration());
      if (hasGeneration()) {
        result = result && (getGeneration()
            == other.getGeneration());
      }
      result = result && (hasCreationTimestamp() == other.hasCreationTimestamp());
      if (hasCreationTimestamp()) {
        result = result && getCreationTimestamp()
            .equals(other.getCreationTimestamp());
      }
      result = result && (hasDeletionTimestamp() == other.hasDeletionTimestamp());
      if (hasDeletionTimestamp()) {
        result = result && getDeletionTimestamp()
            .equals(other.getDeletionTimestamp());
      }
      result = result && (hasDeletionGracePeriodSeconds() == other.hasDeletionGracePeriodSeconds());
      if (hasDeletionGracePeriodSeconds()) {
        result = result && (getDeletionGracePeriodSeconds()
            == other.getDeletionGracePeriodSeconds());
      }
      result = result && internalGetLabels().equals(
          other.internalGetLabels());
      result = result && internalGetAnnotations().equals(
          other.internalGetAnnotations());
      result = result && getOwnerReferencesList()
          .equals(other.getOwnerReferencesList());
      result = result && (hasInitializers() == other.hasInitializers());
      if (hasInitializers()) {
        result = result && getInitializers()
            .equals(other.getInitializers());
      }
      result = result && getFinalizersList()
          .equals(other.getFinalizersList());
      result = result && (hasClusterName() == other.hasClusterName());
      if (hasClusterName()) {
        result = result && getClusterName()
            .equals(other.getClusterName());
      }
      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 (hasGenerateName()) {
        hash = (37 * hash) + GENERATENAME_FIELD_NUMBER;
        hash = (53 * hash) + getGenerateName().hashCode();
      }
      if (hasNamespace()) {
        hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getNamespace().hashCode();
      }
      if (hasSelfLink()) {
        hash = (37 * hash) + SELFLINK_FIELD_NUMBER;
        hash = (53 * hash) + getSelfLink().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 (hasGeneration()) {
        hash = (37 * hash) + GENERATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getGeneration());
      }
      if (hasCreationTimestamp()) {
        hash = (37 * hash) + CREATIONTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getCreationTimestamp().hashCode();
      }
      if (hasDeletionTimestamp()) {
        hash = (37 * hash) + DELETIONTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getDeletionTimestamp().hashCode();
      }
      if (hasDeletionGracePeriodSeconds()) {
        hash = (37 * hash) + DELETIONGRACEPERIODSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDeletionGracePeriodSeconds());
      }
      if (!internalGetLabels().getMap().isEmpty()) {
        hash = (37 * hash) + LABELS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetLabels().hashCode();
      }
      if (!internalGetAnnotations().getMap().isEmpty()) {
        hash = (37 * hash) + ANNOTATIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAnnotations().hashCode();
      }
      if (getOwnerReferencesCount() > 0) {
        hash = (37 * hash) + OWNERREFERENCES_FIELD_NUMBER;
        hash = (53 * hash) + getOwnerReferencesList().hashCode();
      }
      if (hasInitializers()) {
        hash = (37 * hash) + INITIALIZERS_FIELD_NUMBER;
        hash = (53 * hash) + getInitializers().hashCode();
      }
      if (getFinalizersCount() > 0) {
        hash = (37 * hash) + FINALIZERS_FIELD_NUMBER;
        hash = (53 * hash) + getFinalizersList().hashCode();
      }
      if (hasClusterName()) {
        hash = (37 * hash) + CLUSTERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getClusterName().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ObjectMeta parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.ObjectMeta 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.ObjectMeta parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.ObjectMeta 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.ObjectMeta parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.V1.ObjectMeta 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.ObjectMeta parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1.ObjectMeta 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.ObjectMeta parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.V1.ObjectMeta 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.ObjectMeta 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.ObjectMeta parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.kubernetes.client.proto.V1.ObjectMeta prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * ObjectMeta is metadata that all persisted resources must have, which includes all objects
     * users must create.
     * DEPRECATED: Use k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta instead - this type will be removed soon.
     * +k8s:openapi-gen=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ObjectMeta}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ObjectMeta)
        io.kubernetes.client.proto.V1.ObjectMetaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ObjectMeta_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 11:
            return internalGetLabels();
          case 12:
            return internalGetAnnotations();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 11:
            return internalGetMutableLabels();
          case 12:
            return internalGetMutableAnnotations();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ObjectMeta_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ObjectMeta.class, io.kubernetes.client.proto.V1.ObjectMeta.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCreationTimestampFieldBuilder();
          getDeletionTimestampFieldBuilder();
          getOwnerReferencesFieldBuilder();
          getInitializersFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        generateName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        namespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        selfLink_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        resourceVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        generation_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        if (creationTimestampBuilder_ == null) {
          creationTimestamp_ = null;
        } else {
          creationTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (deletionTimestampBuilder_ == null) {
          deletionTimestamp_ = null;
        } else {
          deletionTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        deletionGracePeriodSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        internalGetMutableLabels().clear();
        internalGetMutableAnnotations().clear();
        if (ownerReferencesBuilder_ == null) {
          ownerReferences_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
        } else {
          ownerReferencesBuilder_.clear();
        }
        if (initializersBuilder_ == null) {
          initializers_ = null;
        } else {
          initializersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00004000);
        clusterName_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ObjectMeta_descriptor;
      }

      public io.kubernetes.client.proto.V1.ObjectMeta getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ObjectMeta.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ObjectMeta build() {
        io.kubernetes.client.proto.V1.ObjectMeta result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.kubernetes.client.proto.V1.ObjectMeta buildPartial() {
        io.kubernetes.client.proto.V1.ObjectMeta result = new io.kubernetes.client.proto.V1.ObjectMeta(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.generateName_ = generateName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.namespace_ = namespace_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.selfLink_ = selfLink_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.resourceVersion_ = resourceVersion_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.generation_ = generation_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (creationTimestampBuilder_ == null) {
          result.creationTimestamp_ = creationTimestamp_;
        } else {
          result.creationTimestamp_ = creationTimestampBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (deletionTimestampBuilder_ == null) {
          result.deletionTimestamp_ = deletionTimestamp_;
        } else {
          result.deletionTimestamp_ = deletionTimestampBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.deletionGracePeriodSeconds_ = deletionGracePeriodSeconds_;
        result.labels_ = internalGetLabels();
        result.labels_.makeImmutable();
        result.annotations_ = internalGetAnnotations();
        result.annotations_.makeImmutable();
        if (ownerReferencesBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)) {
            ownerReferences_ = java.util.Collections.unmodifiableList(ownerReferences_);
            bitField0_ = (bitField0_ & ~0x00001000);
          }
          result.ownerReferences_ = ownerReferences_;
        } else {
          result.ownerReferences_ = ownerReferencesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000400;
        }
        if (initializersBuilder_ == null) {
          result.initializers_ = initializers_;
        } else {
          result.initializers_ = initializersBuilder_.build();
        }
        if (((bitField0_ & 0x00004000) == 0x00004000)) {
          finalizers_ = finalizers_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00004000);
        }
        result.finalizers_ = finalizers_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.clusterName_ = clusterName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ObjectMeta) {
          return mergeFrom((io.kubernetes.client.proto.V1.ObjectMeta)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ObjectMeta other) {
        if (other == io.kubernetes.client.proto.V1.ObjectMeta.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasGenerateName()) {
          bitField0_ |= 0x00000002;
          generateName_ = other.generateName_;
          onChanged();
        }
        if (other.hasNamespace()) {
          bitField0_ |= 0x00000004;
          namespace_ = other.namespace_;
          onChanged();
        }
        if (other.hasSelfLink()) {
          bitField0_ |= 0x00000008;
          selfLink_ = other.selfLink_;
          onChanged();
        }
        if (other.hasUid()) {
          bitField0_ |= 0x00000010;
          uid_ = other.uid_;
          onChanged();
        }
        if (other.hasResourceVersion()) {
          bitField0_ |= 0x00000020;
          resourceVersion_ = other.resourceVersion_;
          onChanged();
        }
        if (other.hasGeneration()) {
          setGeneration(other.getGeneration());
        }
        if (other.hasCreationTimestamp()) {
          mergeCreationTimestamp(other.getCreationTimestamp());
        }
        if (other.hasDeletionTimestamp()) {
          mergeDeletionTimestamp(other.getDeletionTimestamp());
        }
        if (other.hasDeletionGracePeriodSeconds()) {
          setDeletionGracePeriodSeconds(other.getDeletionGracePeriodSeconds());
        }
        internalGetMutableLabels().mergeFrom(
            other.internalGetLabels());
        internalGetMutableAnnotations().mergeFrom(
            other.internalGetAnnotations());
        if (ownerReferencesBuilder_ == null) {
          if (!other.ownerReferences_.isEmpty()) {
            if (ownerReferences_.isEmpty()) {
              ownerReferences_ = other.ownerReferences_;
              bitField0_ = (bitField0_ & ~0x00001000);
            } else {
              ensureOwnerReferencesIsMutable();
              ownerReferences_.addAll(other.ownerReferences_);
            }
            onChanged();
          }
        } else {
          if (!other.ownerReferences_.isEmpty()) {
            if (ownerReferencesBuilder_.isEmpty()) {
              ownerReferencesBuilder_.dispose();
              ownerReferencesBuilder_ = null;
              ownerReferences_ = other.ownerReferences_;
              bitField0_ = (bitField0_ & ~0x00001000);
              ownerReferencesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOwnerReferencesFieldBuilder() : null;
            } else {
              ownerReferencesBuilder_.addAllMessages(other.ownerReferences_);
            }
          }
        }
        if (other.hasInitializers()) {
          mergeInitializers(other.getInitializers());
        }
        if (!other.finalizers_.isEmpty()) {
          if (finalizers_.isEmpty()) {
            finalizers_ = other.finalizers_;
            bitField0_ = (bitField0_ & ~0x00004000);
          } else {
            ensureFinalizersIsMutable();
            finalizers_.addAll(other.finalizers_);
          }
          onChanged();
        }
        if (other.hasClusterName()) {
          bitField0_ |= 0x00008000;
          clusterName_ = other.clusterName_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * Name must be unique within a namespace. Is required when creating resources, although
       * some resources may allow a client to request the generation of an appropriate name
       * automatically. Name is primarily intended for creation idempotence and configuration
       * definition.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Name must be unique within a namespace. Is required when creating resources, although
       * some resources may allow a client to request the generation of an appropriate name
       * automatically. Name is primarily intended for creation idempotence and configuration
       * definition.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +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 must be unique within a namespace. Is required when creating resources, although
       * some resources may allow a client to request the generation of an appropriate name
       * automatically. Name is primarily intended for creation idempotence and configuration
       * definition.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +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 must be unique within a namespace. Is required when creating resources, although
       * some resources may allow a client to request the generation of an appropriate name
       * automatically. Name is primarily intended for creation idempotence and configuration
       * definition.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +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 must be unique within a namespace. Is required when creating resources, although
       * some resources may allow a client to request the generation of an appropriate name
       * automatically. Name is primarily intended for creation idempotence and configuration
       * definition.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Name must be unique within a namespace. Is required when creating resources, although
       * some resources may allow a client to request the generation of an appropriate name
       * automatically. Name is primarily intended for creation idempotence and configuration
       * definition.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +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 generateName_ = "";
      /**
       * <pre>
       * GenerateName is an optional prefix, used by the server, to generate a unique
       * name ONLY IF the Name field has not been provided.
       * If this field is used, the name returned to the client will be different
       * than the name passed. This value will also be combined with a unique suffix.
       * The provided value has the same validation rules as the Name field,
       * and may be truncated by the length of the suffix required to make the value
       * unique on the server.
       * 
       * If this field is specified and the generated name exists, the server will
       * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
       * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
       * should retry (optionally after the time indicated in the Retry-After header).
       * 
       * Applied only if Name is not specified.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
       * +optional
       * </pre>
       *
       * <code>optional string generateName = 2;</code>
       */
      public boolean hasGenerateName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * GenerateName is an optional prefix, used by the server, to generate a unique
       * name ONLY IF the Name field has not been provided.
       * If this field is used, the name returned to the client will be different
       * than the name passed. This value will also be combined with a unique suffix.
       * The provided value has the same validation rules as the Name field,
       * and may be truncated by the length of the suffix required to make the value
       * unique on the server.
       * 
       * If this field is specified and the generated name exists, the server will
       * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
       * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
       * should retry (optionally after the time indicated in the Retry-After header).
       * 
       * Applied only if Name is not specified.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
       * +optional
       * </pre>
       *
       * <code>optional string generateName = 2;</code>
       */
      public java.lang.String getGenerateName() {
        java.lang.Object ref = generateName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            generateName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * GenerateName is an optional prefix, used by the server, to generate a unique
       * name ONLY IF the Name field has not been provided.
       * If this field is used, the name returned to the client will be different
       * than the name passed. This value will also be combined with a unique suffix.
       * The provided value has the same validation rules as the Name field,
       * and may be truncated by the length of the suffix required to make the value
       * unique on the server.
       * 
       * If this field is specified and the generated name exists, the server will
       * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
       * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
       * should retry (optionally after the time indicated in the Retry-After header).
       * 
       * Applied only if Name is not specified.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
       * +optional
       * </pre>
       *
       * <code>optional string generateName = 2;</code>
       */
      public com.google.protobuf.ByteString
          getGenerateNameBytes() {
        java.lang.Object ref = generateName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          generateName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * GenerateName is an optional prefix, used by the server, to generate a unique
       * name ONLY IF the Name field has not been provided.
       * If this field is used, the name returned to the client will be different
       * than the name passed. This value will also be combined with a unique suffix.
       * The provided value has the same validation rules as the Name field,
       * and may be truncated by the length of the suffix required to make the value
       * unique on the server.
       * 
       * If this field is specified and the generated name exists, the server will
       * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
       * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
       * should retry (optionally after the time indicated in the Retry-After header).
       * 
       * Applied only if Name is not specified.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
       * +optional
       * </pre>
       *
       * <code>optional string generateName = 2;</code>
       */
      public Builder setGenerateName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        generateName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GenerateName is an optional prefix, used by the server, to generate a unique
       * name ONLY IF the Name field has not been provided.
       * If this field is used, the name returned to the client will be different
       * than the name passed. This value will also be combined with a unique suffix.
       * The provided value has the same validation rules as the Name field,
       * and may be truncated by the length of the suffix required to make the value
       * unique on the server.
       * 
       * If this field is specified and the generated name exists, the server will
       * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
       * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
       * should retry (optionally after the time indicated in the Retry-After header).
       * 
       * Applied only if Name is not specified.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
       * +optional
       * </pre>
       *
       * <code>optional string generateName = 2;</code>
       */
      public Builder clearGenerateName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        generateName_ = getDefaultInstance().getGenerateName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GenerateName is an optional prefix, used by the server, to generate a unique
       * name ONLY IF the Name field has not been provided.
       * If this field is used, the name returned to the client will be different
       * than the name passed. This value will also be combined with a unique suffix.
       * The provided value has the same validation rules as the Name field,
       * and may be truncated by the length of the suffix required to make the value
       * unique on the server.
       * 
       * If this field is specified and the generated name exists, the server will
       * NOT return a 409 - instead, it will either return 201 Created or 500 with Reason
       * ServerTimeout indicating a unique name could not be found in the time allotted, and the client
       * should retry (optionally after the time indicated in the Retry-After header).
       * 
       * Applied only if Name is not specified.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
       * +optional
       * </pre>
       *
       * <code>optional string generateName = 2;</code>
       */
      public Builder setGenerateNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        generateName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object namespace_ = "";
      /**
       * <pre>
       * Namespace defines the space within each name must be unique. An empty namespace is
       * equivalent to the "default" namespace, but "default" is the canonical representation.
       * Not all objects are required to be scoped to a namespace - the value of this field for
       * those objects will be empty.
       * 
       * Must be a DNS_LABEL.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Namespace defines the space within each name must be unique. An empty namespace is
       * equivalent to the "default" namespace, but "default" is the canonical representation.
       * Not all objects are required to be scoped to a namespace - the value of this field for
       * those objects will be empty.
       * 
       * Must be a DNS_LABEL.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</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 each name must be unique. An empty namespace is
       * equivalent to the "default" namespace, but "default" is the canonical representation.
       * Not all objects are required to be scoped to a namespace - the value of this field for
       * those objects will be empty.
       * 
       * Must be a DNS_LABEL.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</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 each name must be unique. An empty namespace is
       * equivalent to the "default" namespace, but "default" is the canonical representation.
       * Not all objects are required to be scoped to a namespace - the value of this field for
       * those objects will be empty.
       * 
       * Must be a DNS_LABEL.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public Builder setNamespace(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        namespace_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Namespace defines the space within each name must be unique. An empty namespace is
       * equivalent to the "default" namespace, but "default" is the canonical representation.
       * Not all objects are required to be scoped to a namespace - the value of this field for
       * those objects will be empty.
       * 
       * Must be a DNS_LABEL.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public Builder clearNamespace() {
        bitField0_ = (bitField0_ & ~0x00000004);
        namespace_ = getDefaultInstance().getNamespace();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Namespace defines the space within each name must be unique. An empty namespace is
       * equivalent to the "default" namespace, but "default" is the canonical representation.
       * Not all objects are required to be scoped to a namespace - the value of this field for
       * those objects will be empty.
       * 
       * Must be a DNS_LABEL.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 3;</code>
       */
      public Builder setNamespaceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        namespace_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object selfLink_ = "";
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 4;</code>
       */
      public boolean hasSelfLink() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 4;</code>
       */
      public java.lang.String getSelfLink() {
        java.lang.Object ref = selfLink_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            selfLink_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 4;</code>
       */
      public com.google.protobuf.ByteString
          getSelfLinkBytes() {
        java.lang.Object ref = selfLink_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          selfLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 4;</code>
       */
      public Builder setSelfLink(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        selfLink_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 4;</code>
       */
      public Builder clearSelfLink() {
        bitField0_ = (bitField0_ & ~0x00000008);
        selfLink_ = getDefaultInstance().getSelfLink();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 4;</code>
       */
      public Builder setSelfLinkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        selfLink_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object uid_ = "";
      /**
       * <pre>
       * UID is the unique in time and space value for this object. It is typically generated by
       * the server on successful creation of a resource and is not allowed to change on PUT
       * operations.
       * 
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 5;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * UID is the unique in time and space value for this object. It is typically generated by
       * the server on successful creation of a resource and is not allowed to change on PUT
       * operations.
       * 
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 5;</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 unique in time and space value for this object. It is typically generated by
       * the server on successful creation of a resource and is not allowed to change on PUT
       * operations.
       * 
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 5;</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 unique in time and space value for this object. It is typically generated by
       * the server on successful creation of a resource and is not allowed to change on PUT
       * operations.
       * 
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 5;</code>
       */
      public Builder setUid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * UID is the unique in time and space value for this object. It is typically generated by
       * the server on successful creation of a resource and is not allowed to change on PUT
       * operations.
       * 
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 5;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000010);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * UID is the unique in time and space value for this object. It is typically generated by
       * the server on successful creation of a resource and is not allowed to change on PUT
       * operations.
       * 
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 5;</code>
       */
      public Builder setUidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        uid_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resourceVersion_ = "";
      /**
       * <pre>
       * An opaque value that represents the internal version of this object that can
       * be used by clients to determine when objects have changed. May be used for optimistic
       * concurrency, change detection, and the watch operation on a resource or set of resources.
       * Clients must treat these values as opaque and passed unmodified back to the server.
       * They may only be valid for a particular resource or set of resources.
       * 
       * Populated by the system.
       * Read-only.
       * Value must be treated as opaque by clients and .
       * 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>
       * An opaque value that represents the internal version of this object that can
       * be used by clients to determine when objects have changed. May be used for optimistic
       * concurrency, change detection, and the watch operation on a resource or set of resources.
       * Clients must treat these values as opaque and passed unmodified back to the server.
       * They may only be valid for a particular resource or set of resources.
       * 
       * Populated by the system.
       * Read-only.
       * Value must be treated as opaque by clients and .
       * 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>
       * An opaque value that represents the internal version of this object that can
       * be used by clients to determine when objects have changed. May be used for optimistic
       * concurrency, change detection, and the watch operation on a resource or set of resources.
       * Clients must treat these values as opaque and passed unmodified back to the server.
       * They may only be valid for a particular resource or set of resources.
       * 
       * Populated by the system.
       * Read-only.
       * Value must be treated as opaque by clients and .
       * 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>
       * An opaque value that represents the internal version of this object that can
       * be used by clients to determine when objects have changed. May be used for optimistic
       * concurrency, change detection, and the watch operation on a resource or set of resources.
       * Clients must treat these values as opaque and passed unmodified back to the server.
       * They may only be valid for a particular resource or set of resources.
       * 
       * Populated by the system.
       * Read-only.
       * Value must be treated as opaque by clients and .
       * 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>
       * An opaque value that represents the internal version of this object that can
       * be used by clients to determine when objects have changed. May be used for optimistic
       * concurrency, change detection, and the watch operation on a resource or set of resources.
       * Clients must treat these values as opaque and passed unmodified back to the server.
       * They may only be valid for a particular resource or set of resources.
       * 
       * Populated by the system.
       * Read-only.
       * Value must be treated as opaque by clients and .
       * 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>
       * An opaque value that represents the internal version of this object that can
       * be used by clients to determine when objects have changed. May be used for optimistic
       * concurrency, change detection, and the watch operation on a resource or set of resources.
       * Clients must treat these values as opaque and passed unmodified back to the server.
       * They may only be valid for a particular resource or set of resources.
       * 
       * Populated by the system.
       * Read-only.
       * Value must be treated as opaque by clients and .
       * 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 long generation_ ;
      /**
       * <pre>
       * A sequence number representing a specific generation of the desired state.
       * Populated by the system. Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 generation = 7;</code>
       */
      public boolean hasGeneration() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       * A sequence number representing a specific generation of the desired state.
       * Populated by the system. Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 generation = 7;</code>
       */
      public long getGeneration() {
        return generation_;
      }
      /**
       * <pre>
       * A sequence number representing a specific generation of the desired state.
       * Populated by the system. Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 generation = 7;</code>
       */
      public Builder setGeneration(long value) {
        bitField0_ |= 0x00000040;
        generation_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A sequence number representing a specific generation of the desired state.
       * Populated by the system. Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 generation = 7;</code>
       */
      public Builder clearGeneration() {
        bitField0_ = (bitField0_ & ~0x00000040);
        generation_ = 0L;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time creationTimestamp_ = 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> creationTimestampBuilder_;
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public boolean hasCreationTimestamp() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getCreationTimestamp() {
        if (creationTimestampBuilder_ == null) {
          return creationTimestamp_ == null ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : creationTimestamp_;
        } else {
          return creationTimestampBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public Builder setCreationTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (creationTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          creationTimestamp_ = value;
          onChanged();
        } else {
          creationTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public Builder setCreationTimestamp(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (creationTimestampBuilder_ == null) {
          creationTimestamp_ = builderForValue.build();
          onChanged();
        } else {
          creationTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public Builder mergeCreationTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (creationTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              creationTimestamp_ != null &&
              creationTimestamp_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            creationTimestamp_ =
              io.kubernetes.client.proto.Meta.Time.newBuilder(creationTimestamp_).mergeFrom(value).buildPartial();
          } else {
            creationTimestamp_ = value;
          }
          onChanged();
        } else {
          creationTimestampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public Builder clearCreationTimestamp() {
        if (creationTimestampBuilder_ == null) {
          creationTimestamp_ = null;
          onChanged();
        } else {
          creationTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getCreationTimestampBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getCreationTimestampFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getCreationTimestampOrBuilder() {
        if (creationTimestampBuilder_ != null) {
          return creationTimestampBuilder_.getMessageOrBuilder();
        } else {
          return creationTimestamp_ == null ?
              io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : creationTimestamp_;
        }
      }
      /**
       * <pre>
       * CreationTimestamp is a timestamp representing the server time when this object was
       * created. It is not guaranteed to be set in happens-before order across separate operations.
       * Clients may not set this value. It is represented in RFC3339 form and is in UTC.
       * 
       * Populated by the system.
       * Read-only.
       * Null for lists.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8;</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> 
          getCreationTimestampFieldBuilder() {
        if (creationTimestampBuilder_ == null) {
          creationTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time, io.kubernetes.client.proto.Meta.Time.Builder, io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getCreationTimestamp(),
                  getParentForChildren(),
                  isClean());
          creationTimestamp_ = null;
        }
        return creationTimestampBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time deletionTimestamp_ = 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> deletionTimestampBuilder_;
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public boolean hasDeletionTimestamp() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getDeletionTimestamp() {
        if (deletionTimestampBuilder_ == null) {
          return deletionTimestamp_ == null ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : deletionTimestamp_;
        } else {
          return deletionTimestampBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public Builder setDeletionTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (deletionTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deletionTimestamp_ = value;
          onChanged();
        } else {
          deletionTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public Builder setDeletionTimestamp(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (deletionTimestampBuilder_ == null) {
          deletionTimestamp_ = builderForValue.build();
          onChanged();
        } else {
          deletionTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public Builder mergeDeletionTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (deletionTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              deletionTimestamp_ != null &&
              deletionTimestamp_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            deletionTimestamp_ =
              io.kubernetes.client.proto.Meta.Time.newBuilder(deletionTimestamp_).mergeFrom(value).buildPartial();
          } else {
            deletionTimestamp_ = value;
          }
          onChanged();
        } else {
          deletionTimestampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public Builder clearDeletionTimestamp() {
        if (deletionTimestampBuilder_ == null) {
          deletionTimestamp_ = null;
          onChanged();
        } else {
          deletionTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getDeletionTimestampBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getDeletionTimestampFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getDeletionTimestampOrBuilder() {
        if (deletionTimestampBuilder_ != null) {
          return deletionTimestampBuilder_.getMessageOrBuilder();
        } else {
          return deletionTimestamp_ == null ?
              io.kubernetes.client.proto.Meta.Time.getDefaultInstance() : deletionTimestamp_;
        }
      }
      /**
       * <pre>
       * DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This
       * field is set by the server when a graceful deletion is requested by the user, and is not
       * directly settable by a client. The resource is expected to be deleted (no longer visible
       * from resource lists, and not reachable by name) after the time in this field. Once set,
       * this value may not be unset or be set further into the future, although it may be shortened
       * or the resource may be deleted prior to this time. For example, a user may request that
       * a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination
       * signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard
       * termination signal (SIGKILL) to the container and after cleanup, remove the pod from the
       * API. In the presence of network partitions, this object may still exist after this
       * timestamp, until an administrator or automated process can determine the resource is
       * fully terminated.
       * If not set, graceful deletion of the object has not been requested.
       * 
       * Populated by the system when a graceful deletion is requested.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9;</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> 
          getDeletionTimestampFieldBuilder() {
        if (deletionTimestampBuilder_ == null) {
          deletionTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time, io.kubernetes.client.proto.Meta.Time.Builder, io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getDeletionTimestamp(),
                  getParentForChildren(),
                  isClean());
          deletionTimestamp_ = null;
        }
        return deletionTimestampBuilder_;
      }

      private long deletionGracePeriodSeconds_ ;
      /**
       * <pre>
       * Number of seconds allowed for this object to gracefully terminate before
       * it will be removed from the system. Only set when deletionTimestamp is also set.
       * May only be shortened.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
       */
      public boolean hasDeletionGracePeriodSeconds() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <pre>
       * Number of seconds allowed for this object to gracefully terminate before
       * it will be removed from the system. Only set when deletionTimestamp is also set.
       * May only be shortened.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
       */
      public long getDeletionGracePeriodSeconds() {
        return deletionGracePeriodSeconds_;
      }
      /**
       * <pre>
       * Number of seconds allowed for this object to gracefully terminate before
       * it will be removed from the system. Only set when deletionTimestamp is also set.
       * May only be shortened.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
       */
      public Builder setDeletionGracePeriodSeconds(long value) {
        bitField0_ |= 0x00000200;
        deletionGracePeriodSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Number of seconds allowed for this object to gracefully terminate before
       * it will be removed from the system. Only set when deletionTimestamp is also set.
       * May only be shortened.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional int64 deletionGracePeriodSeconds = 10;</code>
       */
      public Builder clearDeletionGracePeriodSeconds() {
        bitField0_ = (bitField0_ & ~0x00000200);
        deletionGracePeriodSeconds_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> labels_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetLabels() {
        if (labels_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        return labels_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableLabels() {
        onChanged();;
        if (labels_ == null) {
          labels_ = com.google.protobuf.MapField.newMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        if (!labels_.isMutable()) {
          labels_ = labels_.copy();
        }
        return labels_;
      }

      public int getLabelsCount() {
        return internalGetLabels().getMap().size();
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */

      public boolean containsLabels(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetLabels().getMap().containsKey(key);
      }
      /**
       * Use {@link #getLabelsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getLabels() {
        return getLabelsMap();
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getLabelsMap() {
        return internalGetLabels().getMap();
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */

      public java.lang.String getLabelsOrDefault(
          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 =
            internalGetLabels().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */

      public java.lang.String getLabelsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetLabels().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearLabels() {
        internalGetMutableLabels().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */

      public Builder removeLabels(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableLabels().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableLabels() {
        return internalGetMutableLabels().getMutableMap();
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */
      public Builder putLabels(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableLabels().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * Map of string keys and values that can be used to organize and categorize
       * (scope and select) objects. May match selectors of replication controllers
       * and services.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; labels = 11;</code>
       */

      public Builder putAllLabels(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableLabels().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> annotations_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetAnnotations() {
        if (annotations_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AnnotationsDefaultEntryHolder.defaultEntry);
        }
        return annotations_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableAnnotations() {
        onChanged();;
        if (annotations_ == null) {
          annotations_ = com.google.protobuf.MapField.newMapField(
              AnnotationsDefaultEntryHolder.defaultEntry);
        }
        if (!annotations_.isMutable()) {
          annotations_ = annotations_.copy();
        }
        return annotations_;
      }

      public int getAnnotationsCount() {
        return internalGetAnnotations().getMap().size();
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */

      public boolean containsAnnotations(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAnnotations().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAnnotationsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAnnotations() {
        return getAnnotationsMap();
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getAnnotationsMap() {
        return internalGetAnnotations().getMap();
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */

      public java.lang.String getAnnotationsOrDefault(
          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 =
            internalGetAnnotations().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */

      public java.lang.String getAnnotationsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAnnotations().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearAnnotations() {
        internalGetMutableAnnotations().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */

      public Builder removeAnnotations(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAnnotations().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableAnnotations() {
        return internalGetMutableAnnotations().getMutableMap();
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */
      public Builder putAnnotations(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAnnotations().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * Annotations is an unstructured key value map stored with a resource that may be
       * set by external tools to store and retrieve arbitrary metadata. They are not
       * queryable and should be preserved when modifying objects.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; annotations = 12;</code>
       */

      public Builder putAllAnnotations(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAnnotations().getMutableMap()
            .putAll(values);
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.Meta.OwnerReference> ownerReferences_ =
        java.util.Collections.emptyList();
      private void ensureOwnerReferencesIsMutable() {
        if (!((bitField0_ & 0x00001000) == 0x00001000)) {
          ownerReferences_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.OwnerReference>(ownerReferences_);
          bitField0_ |= 0x00001000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.OwnerReference, io.kubernetes.client.proto.Meta.OwnerReference.Builder, io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder> ownerReferencesBuilder_;

      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.OwnerReference> getOwnerReferencesList() {
        if (ownerReferencesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ownerReferences_);
        } else {
          return ownerReferencesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public int getOwnerReferencesCount() {
        if (ownerReferencesBuilder_ == null) {
          return ownerReferences_.size();
        } else {
          return ownerReferencesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReference getOwnerReferences(int index) {
        if (ownerReferencesBuilder_ == null) {
          return ownerReferences_.get(index);
        } else {
          return ownerReferencesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder setOwnerReferences(
          int index, io.kubernetes.client.proto.Meta.OwnerReference value) {
        if (ownerReferencesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOwnerReferencesIsMutable();
          ownerReferences_.set(index, value);
          onChanged();
        } else {
          ownerReferencesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder setOwnerReferences(
          int index, io.kubernetes.client.proto.Meta.OwnerReference.Builder builderForValue) {
        if (ownerReferencesBuilder_ == null) {
          ensureOwnerReferencesIsMutable();
          ownerReferences_.set(index, builderForValue.build());
          onChanged();
        } else {
          ownerReferencesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder addOwnerReferences(io.kubernetes.client.proto.Meta.OwnerReference value) {
        if (ownerReferencesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOwnerReferencesIsMutable();
          ownerReferences_.add(value);
          onChanged();
        } else {
          ownerReferencesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder addOwnerReferences(
          int index, io.kubernetes.client.proto.Meta.OwnerReference value) {
        if (ownerReferencesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOwnerReferencesIsMutable();
          ownerReferences_.add(index, value);
          onChanged();
        } else {
          ownerReferencesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder addOwnerReferences(
          io.kubernetes.client.proto.Meta.OwnerReference.Builder builderForValue) {
        if (ownerReferencesBuilder_ == null) {
          ensureOwnerReferencesIsMutable();
          ownerReferences_.add(builderForValue.build());
          onChanged();
        } else {
          ownerReferencesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder addOwnerReferences(
          int index, io.kubernetes.client.proto.Meta.OwnerReference.Builder builderForValue) {
        if (ownerReferencesBuilder_ == null) {
          ensureOwnerReferencesIsMutable();
          ownerReferences_.add(index, builderForValue.build());
          onChanged();
        } else {
          ownerReferencesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder addAllOwnerReferences(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.OwnerReference> values) {
        if (ownerReferencesBuilder_ == null) {
          ensureOwnerReferencesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, ownerReferences_);
          onChanged();
        } else {
          ownerReferencesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder clearOwnerReferences() {
        if (ownerReferencesBuilder_ == null) {
          ownerReferences_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
          onChanged();
        } else {
          ownerReferencesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public Builder removeOwnerReferences(int index) {
        if (ownerReferencesBuilder_ == null) {
          ensureOwnerReferencesIsMutable();
          ownerReferences_.remove(index);
          onChanged();
        } else {
          ownerReferencesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReference.Builder getOwnerReferencesBuilder(
          int index) {
        return getOwnerReferencesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder getOwnerReferencesOrBuilder(
          int index) {
        if (ownerReferencesBuilder_ == null) {
          return ownerReferences_.get(index);  } else {
          return ownerReferencesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder> 
           getOwnerReferencesOrBuilderList() {
        if (ownerReferencesBuilder_ != null) {
          return ownerReferencesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ownerReferences_);
        }
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReference.Builder addOwnerReferencesBuilder() {
        return getOwnerReferencesFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance());
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReference.Builder addOwnerReferencesBuilder(
          int index) {
        return getOwnerReferencesFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance());
      }
      /**
       * <pre>
       * List of objects depended by this object. If ALL objects in the list have
       * been deleted, this object will be garbage collected. If this object is managed by a controller,
       * then an entry in this list will point to this controller, with the controller field set to true.
       * There cannot be more than one managing controller.
       * +optional
       * +patchMergeKey=uid
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.OwnerReference.Builder> 
           getOwnerReferencesBuilderList() {
        return getOwnerReferencesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.OwnerReference, io.kubernetes.client.proto.Meta.OwnerReference.Builder, io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder> 
          getOwnerReferencesFieldBuilder() {
        if (ownerReferencesBuilder_ == null) {
          ownerReferencesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.OwnerReference, io.kubernetes.client.proto.Meta.OwnerReference.Builder, io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder>(
                  ownerReferences_,
                  ((bitField0_ & 0x00001000) == 0x00001000),
                  getParentForChildren(),
                  isClean());
          ownerReferences_ = null;
        }
        return ownerReferencesBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Initializers initializers_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Initializers, io.kubernetes.client.proto.Meta.Initializers.Builder, io.kubernetes.client.proto.Meta.InitializersOrBuilder> initializersBuilder_;
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public boolean hasInitializers() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public io.kubernetes.client.proto.Meta.Initializers getInitializers() {
        if (initializersBuilder_ == null) {
          return initializers_ == null ? io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance() : initializers_;
        } else {
          return initializersBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public Builder setInitializers(io.kubernetes.client.proto.Meta.Initializers value) {
        if (initializersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          initializers_ = value;
          onChanged();
        } else {
          initializersBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public Builder setInitializers(
          io.kubernetes.client.proto.Meta.Initializers.Builder builderForValue) {
        if (initializersBuilder_ == null) {
          initializers_ = builderForValue.build();
          onChanged();
        } else {
          initializersBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public Builder mergeInitializers(io.kubernetes.client.proto.Meta.Initializers value) {
        if (initializersBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000) &&
              initializers_ != null &&
              initializers_ != io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance()) {
            initializers_ =
              io.kubernetes.client.proto.Meta.Initializers.newBuilder(initializers_).mergeFrom(value).buildPartial();
          } else {
            initializers_ = value;
          }
          onChanged();
        } else {
          initializersBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public Builder clearInitializers() {
        if (initializersBuilder_ == null) {
          initializers_ = null;
          onChanged();
        } else {
          initializersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public io.kubernetes.client.proto.Meta.Initializers.Builder getInitializersBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getInitializersFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      public io.kubernetes.client.proto.Meta.InitializersOrBuilder getInitializersOrBuilder() {
        if (initializersBuilder_ != null) {
          return initializersBuilder_.getMessageOrBuilder();
        } else {
          return initializers_ == null ?
              io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance() : initializers_;
        }
      }
      /**
       * <pre>
       * An initializer is a controller which enforces some system invariant at object creation time.
       * This field is a list of initializers that have not yet acted on this object. If nil or empty,
       * this object has been completely initialized. Otherwise, the object is considered uninitialized
       * and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to
       * observe uninitialized objects.
       * 
       * When an object is created, the system will populate this list with the current set of initializers.
       * Only privileged users may set or modify this list. Once it is empty, it may not be modified further
       * by any user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Initializers, io.kubernetes.client.proto.Meta.Initializers.Builder, io.kubernetes.client.proto.Meta.InitializersOrBuilder> 
          getInitializersFieldBuilder() {
        if (initializersBuilder_ == null) {
          initializersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Initializers, io.kubernetes.client.proto.Meta.Initializers.Builder, io.kubernetes.client.proto.Meta.InitializersOrBuilder>(
                  getInitializers(),
                  getParentForChildren(),
                  isClean());
          initializers_ = null;
        }
        return initializersBuilder_;
      }

      private com.google.protobuf.LazyStringList finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureFinalizersIsMutable() {
        if (!((bitField0_ & 0x00004000) == 0x00004000)) {
          finalizers_ = new com.google.protobuf.LazyStringArrayList(finalizers_);
          bitField0_ |= 0x00004000;
         }
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getFinalizersList() {
        return finalizers_.getUnmodifiableView();
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public int getFinalizersCount() {
        return finalizers_.size();
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public java.lang.String getFinalizers(int index) {
        return finalizers_.get(index);
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public com.google.protobuf.ByteString
          getFinalizersBytes(int index) {
        return finalizers_.getByteString(index);
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</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>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public Builder addFinalizers(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFinalizersIsMutable();
        finalizers_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public Builder addAllFinalizers(
          java.lang.Iterable<java.lang.String> values) {
        ensureFinalizersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, finalizers_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public Builder clearFinalizers() {
        finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00004000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Must be empty before the object is deleted from the registry. Each entry
       * is an identifier for the responsible component that will remove the entry
       * from the list. If the deletionTimestamp of the object is non-nil, entries
       * in this list can only be removed.
       * +optional
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated string finalizers = 14;</code>
       */
      public Builder addFinalizersBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFinalizersIsMutable();
        finalizers_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object clusterName_ = "";
      /**
       * <pre>
       * The name of the cluster which the object belongs to.
       * This is used to distinguish resources with same name and namespace in different clusters.
       * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
       * +optional
       * </pre>
       *
       * <code>optional string clusterName = 15;</code>
       */
      public boolean hasClusterName() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * <pre>
       * The name of the cluster which the object belongs to.
       * This is used to distinguish resources with same name and namespace in different clusters.
       * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
       * +optional
       * </pre>
       *
       * <code>optional string clusterName = 15;</code>
       */
      public java.lang.String getClusterName() {
        java.lang.Object ref = clusterName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clusterName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The name of the cluster which the object belongs to.
       * This is used to distinguish resources with same name and namespace in different clusters.
       * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
       * +optional
       * </pre>
       *
       * <code>optional string clusterName = 15;</code>
       */
      public com.google.protobuf.ByteString
          getClusterNameBytes() {
        java.lang.Object ref = clusterName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The name of the cluster which the object belongs to.
       * This is used to distinguish resources with same name and namespace in different clusters.
       * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
       * +optional
       * </pre>
       *
       * <code>optional string clusterName = 15;</code>
       */
      public Builder setClusterName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        clusterName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The name of the cluster which the object belongs to.
       * This is used to distinguish resources with same name and namespace in different clusters.
       * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
       * +optional
       * </pre>
       *
       * <code>optional string clusterName = 15;</code>
       */
      public Builder clearClusterName() {
        bitField0_ = (bitField0_ & ~0x00008000);
        clusterName_ = getDefaultInstance().getClusterName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The name of the cluster which the object belongs to.
       * This is used to distinguish resources with same name and namespace in different clusters.
       * This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
       * +optional
       * </pre>
       *
       * <code>optional string clusterName = 15;</code>
       */
      public Builder setClusterNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        clusterName_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ObjectMeta)
    private static final io.kubernetes.client.proto.V1.ObjectMeta DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ObjectMeta();
    }

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

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

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

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

    public io.kubernetes.client.proto.V1.ObjectMeta 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ObjectReference_descriptor;
      }

      public io.kubernetes.client.proto.V1.ObjectReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ObjectReference build() {
        io.kubernetes.client.proto.V1.ObjectReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolume getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolume.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolume build() {
        io.kubernetes.client.proto.V1.PersistentVolume result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaim getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaim.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaim build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaim result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.PersistentVolumeClaim 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimList build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
   * 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_ = "";
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
   * 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;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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();
        }
        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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 3:
          return internalGetCapacity();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
      unknownFields.writeTo(output);
    }

    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__);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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);
        }
      }
      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) {
        }
      }
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        internalGetMutableCapacity().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        claimName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeList build() {
        io.kubernetes.client.proto.V1.PersistentVolumeList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.GlusterfsVolumeSource 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.GlusterfsVolumeSource glusterfs = 4;</code>
     */
    io.kubernetes.client.proto.V1.GlusterfsVolumeSource 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.GlusterfsVolumeSource glusterfs = 4;</code>
     */
    io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder 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.RBDVolumeSource 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.RBDVolumeSource rbd = 6;</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 = 6;</code>
     */
    io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder 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.ISCSIVolumeSource 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.ISCSIVolumeSource iscsi = 7;</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. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 7;</code>
     */
    io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder 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.CinderVolumeSource 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.CinderVolumeSource cinder = 8;</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 = 8;</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 = 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.CephFSVolumeSource cephfs = 9;</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 = 9;</code>
     */
    io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder 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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder 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.AzureFileVolumeSource 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.AzureFileVolumeSource azureFile = 13;</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 = 13;</code>
     */
    io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder 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.ScaleIOVolumeSource 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.ScaleIOVolumeSource scaleIO = 19;</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 = 19;</code>
     */
    io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder 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>
   * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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.GlusterfsVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = glusterfs_.toBuilder();
              }
              glusterfs_ = input.readMessage(io.kubernetes.client.proto.V1.GlusterfsVolumeSource.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.RBDVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = rbd_.toBuilder();
              }
              rbd_ = input.readMessage(io.kubernetes.client.proto.V1.RBDVolumeSource.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rbd_);
                rbd_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = iscsi_.toBuilder();
              }
              iscsi_ = input.readMessage(io.kubernetes.client.proto.V1.ISCSIVolumeSource.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(iscsi_);
                iscsi_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              io.kubernetes.client.proto.V1.CinderVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = cinder_.toBuilder();
              }
              cinder_ = input.readMessage(io.kubernetes.client.proto.V1.CinderVolumeSource.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(cinder_);
                cinder_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = cephfs_.toBuilder();
              }
              cephfs_ = input.readMessage(io.kubernetes.client.proto.V1.CephFSVolumeSource.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.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.AzureFileVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00001000) == 0x00001000)) {
                subBuilder = azureFile_.toBuilder();
              }
              azureFile_ = input.readMessage(io.kubernetes.client.proto.V1.AzureFileVolumeSource.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.ScaleIOVolumeSource.Builder subBuilder = null;
              if (((bitField0_ & 0x00040000) == 0x00040000)) {
                subBuilder = scaleIO_.toBuilder();
              }
              scaleIO_ = input.readMessage(io.kubernetes.client.proto.V1.ScaleIOVolumeSource.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;
            }
          }
        }
      } 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;
    }

    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.GlusterfsVolumeSource 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.GlusterfsVolumeSource 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.GlusterfsVolumeSource glusterfs = 4;</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 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.GlusterfsVolumeSource glusterfs = 4;</code>
     */
    public io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder getGlusterfsOrBuilder() {
      return glusterfs_ == null ? io.kubernetes.client.proto.V1.GlusterfsVolumeSource.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.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 = 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.RBDVolumeSource rbd = 6;</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 = 6;</code>
     */
    public io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder getRbdOrBuilder() {
      return rbd_ == null ? io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance() : rbd_;
    }

    public static final int ISCSI_FIELD_NUMBER = 7;
    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. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource 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.ISCSIVolumeSource iscsi = 7;</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. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 7;</code>
     */
    public io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder getIscsiOrBuilder() {
      return iscsi_ == null ? io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance() : iscsi_;
    }

    public static final int CINDER_FIELD_NUMBER = 8;
    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 = 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.CinderVolumeSource cinder = 8;</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 = 8;</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 = 9;
    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 = 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.CephFSVolumeSource cephfs = 9;</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 = 9;</code>
     */
    public io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder getCephfsOrBuilder() {
      return cephfs_ == null ? io.kubernetes.client.proto.V1.CephFSVolumeSource.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.FlexVolumeSource flexVolume_;
    /**
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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 AZUREFILE_FIELD_NUMBER = 13;
    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 = 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.AzureFileVolumeSource azureFile = 13;</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 = 13;</code>
     */
    public io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder getAzureFileOrBuilder() {
      return azureFile_ == null ? io.kubernetes.client.proto.V1.AzureFileVolumeSource.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.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 = 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.ScaleIOVolumeSource scaleIO = 19;</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 = 19;</code>
     */
    public io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder getScaleIOOrBuilder() {
      return scaleIO_ == null ? io.kubernetes.client.proto.V1.ScaleIOVolumeSource.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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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());
      }
      unknownFields.writeTo(output);
    }

    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());
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.PersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.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 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.GlusterfsVolumeSource 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.GlusterfsVolumeSource glusterfs = 4;</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 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.GlusterfsVolumeSource glusterfs = 4;</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_ |= 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.GlusterfsVolumeSource glusterfs = 4;</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_ |= 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.GlusterfsVolumeSource glusterfs = 4;</code>
       */
      public Builder mergeGlusterfs(io.kubernetes.client.proto.V1.GlusterfsVolumeSource value) {
        if (glusterfsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              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_ |= 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.GlusterfsVolumeSource 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.GlusterfsVolumeSource glusterfs = 4;</code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource.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.GlusterfsVolumeSource glusterfs = 4;</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 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.GlusterfsVolumeSource glusterfs = 4;</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.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.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 = 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.RBDVolumeSource rbd = 6;</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 = 6;</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_ |= 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.RBDVolumeSource rbd = 6;</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_ |= 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.RBDVolumeSource rbd = 6;</code>
       */
      public Builder mergeRbd(io.kubernetes.client.proto.V1.RBDVolumeSource value) {
        if (rbdBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              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_ |= 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.RBDVolumeSource 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.RBDVolumeSource rbd = 6;</code>
       */
      public io.kubernetes.client.proto.V1.RBDVolumeSource.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.RBDVolumeSource rbd = 6;</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 = 6;</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.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. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource 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.ISCSIVolumeSource iscsi = 7;</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. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 7;</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_ |= 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.ISCSIVolumeSource iscsi = 7;</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_ |= 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.ISCSIVolumeSource iscsi = 7;</code>
       */
      public Builder mergeIscsi(io.kubernetes.client.proto.V1.ISCSIVolumeSource value) {
        if (iscsiBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              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_ |= 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.ISCSIVolumeSource 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.ISCSIVolumeSource iscsi = 7;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIVolumeSource.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.ISCSIVolumeSource iscsi = 7;</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. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 7;</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.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 = 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.CinderVolumeSource cinder = 8;</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 = 8;</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_ |= 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.CinderVolumeSource cinder = 8;</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_ |= 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.CinderVolumeSource cinder = 8;</code>
       */
      public Builder mergeCinder(io.kubernetes.client.proto.V1.CinderVolumeSource value) {
        if (cinderBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              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_ |= 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.CinderVolumeSource 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.CinderVolumeSource cinder = 8;</code>
       */
      public io.kubernetes.client.proto.V1.CinderVolumeSource.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.CinderVolumeSource cinder = 8;</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 = 8;</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 = 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.CephFSVolumeSource cephfs = 9;</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 = 9;</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_ |= 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.CephFSVolumeSource cephfs = 9;</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_ |= 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.CephFSVolumeSource cephfs = 9;</code>
       */
      public Builder mergeCephfs(io.kubernetes.client.proto.V1.CephFSVolumeSource value) {
        if (cephfsBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              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_ |= 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.CephFSVolumeSource 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.CephFSVolumeSource cephfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSVolumeSource.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.CephFSVolumeSource cephfs = 9;</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 = 9;</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.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.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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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.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 = 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.AzureFileVolumeSource azureFile = 13;</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 = 13;</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_ |= 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.AzureFileVolumeSource azureFile = 13;</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_ |= 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.AzureFileVolumeSource azureFile = 13;</code>
       */
      public Builder mergeAzureFile(io.kubernetes.client.proto.V1.AzureFileVolumeSource value) {
        if (azureFileBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000) &&
              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_ |= 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.AzureFileVolumeSource 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.AzureFileVolumeSource azureFile = 13;</code>
       */
      public io.kubernetes.client.proto.V1.AzureFileVolumeSource.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.AzureFileVolumeSource azureFile = 13;</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 = 13;</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.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.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 = 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.ScaleIOVolumeSource scaleIO = 19;</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 = 19;</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_ |= 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.ScaleIOVolumeSource scaleIO = 19;</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_ |= 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.ScaleIOVolumeSource scaleIO = 19;</code>
       */
      public Builder mergeScaleIO(io.kubernetes.client.proto.V1.ScaleIOVolumeSource value) {
        if (scaleIOBuilder_ == null) {
          if (((bitField0_ & 0x00040000) == 0x00040000) &&
              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_ |= 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.ScaleIOVolumeSource 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.ScaleIOVolumeSource scaleIO = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource.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.ScaleIOVolumeSource scaleIO = 19;</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 = 19;</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.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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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) and Recycle.
     * Recycling must be supported by the volume plugin underlying this persistent volume.
     * 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) and Recycle.
     * Recycling must be supported by the volume plugin underlying this persistent volume.
     * 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) and Recycle.
     * Recycling must be supported by the volume plugin underlying this persistent volume.
     * 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>
   * 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_ = "";
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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();
        }
        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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetCapacity();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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) and Recycle.
     * Recycling must be supported by the volume plugin underlying this persistent volume.
     * 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) and Recycle.
     * Recycling must be supported by the volume plugin underlying this persistent volume.
     * 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) and Recycle.
     * Recycling must be supported by the volume plugin underlying this persistent volume.
     * 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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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);
        }
      }
      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeSpec build() {
        io.kubernetes.client.proto.V1.PersistentVolumeSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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) and Recycle.
       * Recycling must be supported by the volume plugin underlying this persistent volume.
       * 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) and Recycle.
       * Recycling must be supported by the volume plugin underlying this persistent volume.
       * 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) and Recycle.
       * Recycling must be supported by the volume plugin underlying this persistent volume.
       * 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) and Recycle.
       * Recycling must be supported by the volume plugin underlying this persistent volume.
       * 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) and Recycle.
       * Recycling must be supported by the volume plugin underlying this persistent volume.
       * 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) and Recycle.
       * Recycling must be supported by the volume plugin underlying this persistent volume.
       * 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PersistentVolumeStatus build() {
        io.kubernetes.client.proto.V1.PersistentVolumeStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        pdID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Pod_descriptor;
      }

      public io.kubernetes.client.proto.V1.Pod getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Pod.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Pod build() {
        io.kubernetes.client.proto.V1.Pod result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodAffinity_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodAffinity build() {
        io.kubernetes.client.proto.V1.PodAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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"
     * </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"
     * </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"
     * </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"
     * </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.
     * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
     * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
     * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
     * +optional
     * </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.
     * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
     * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
     * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
     * +optional
     * </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.
     * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
     * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
     * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
     * +optional
     * </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; tches 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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"
     * </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"
     * </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"
     * </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"
     * </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.
     * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
     * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
     * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
     * +optional
     * </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.
     * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
     * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
     * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
     * +optional
     * </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.
     * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
     * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
     * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
     * +optional
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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; tches 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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodAffinityTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodAffinityTerm build() {
        io.kubernetes.client.proto.V1.PodAffinityTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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"
       * </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"
       * </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"
       * </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"
       * </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"
       * </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"
       * </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"
       * </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"
       * </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"
       * </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.
       * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
       * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
       * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
       * +optional
       * </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.
       * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
       * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
       * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
       * +optional
       * </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.
       * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
       * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
       * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
       * +optional
       * </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.
       * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
       * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
       * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
       * +optional
       * </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.
       * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
       * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
       * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
       * +optional
       * </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.
       * For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies"
       * ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains);
       * for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.
       * +optional
       * </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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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>
     * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
     * 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 will 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
     * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
     * 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodAntiAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodAntiAffinity build() {
        io.kubernetes.client.proto.V1.PodAntiAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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>
       * NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.
       * 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 will 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
       * RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"`
       * 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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodAttachOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAttachOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodAttachOptions build() {
        io.kubernetes.client.proto.V1.PodAttachOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
     * Currently only Ready.
     * 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.
     * Currently only Ready.
     * 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.
     * Currently only Ready.
     * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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.
     * Currently only Ready.
     * 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.
     * Currently only Ready.
     * 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.
     * Currently only Ready.
     * 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodCondition_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodCondition.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodCondition build() {
        io.kubernetes.client.proto.V1.PodCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.
       * Currently only Ready.
       * 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.
       * Currently only Ready.
       * 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.
       * Currently only Ready.
       * 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.
       * Currently only Ready.
       * 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.
       * Currently only Ready.
       * 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.
       * Currently only Ready.
       * 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.PodCondition 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodExecOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodExecOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodExecOptions build() {
        io.kubernetes.client.proto.V1.PodExecOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodList_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodList build() {
        io.kubernetes.client.proto.V1.PodList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodLogOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodLogOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodLogOptions build() {
        io.kubernetes.client.proto.V1.PodLogOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        ports_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodPortForwardOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodPortForwardOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodPortForwardOptions build() {
        io.kubernetes.client.proto.V1.PodPortForwardOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodProxyOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodProxyOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodProxyOptions build() {
        io.kubernetes.client.proto.V1.PodProxyOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.PodProxyOptions 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>
     * 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>
   * 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;
      runAsNonRoot_ = false;
      supplementalGroups_ = java.util.Collections.emptyList();
      fsGroup_ = 0L;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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_ |= 0x00000004;
              runAsNonRoot_ = input.readBool();
              break;
            }
            case 32: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                supplementalGroups_ = new java.util.ArrayList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000008;
              }
              supplementalGroups_.add(input.readInt64());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                supplementalGroups_ = new java.util.ArrayList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000008;
              }
              while (input.getBytesUntilLimit() > 0) {
                supplementalGroups_.add(input.readInt64());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              fsGroup_ = input.readInt64();
              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)) {
          supplementalGroups_ = java.util.Collections.unmodifiableList(supplementalGroups_);
        }
        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;
    }

    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 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_ & 0x00000004) == 0x00000004);
    }
    /**
     * <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_ & 0x00000008) == 0x00000008);
    }
    /**
     * <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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, runAsNonRoot_);
      }
      for (int i = 0; i < supplementalGroups_.size(); i++) {
        output.writeInt64(4, supplementalGroups_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(5, fsGroup_);
      }
      unknownFields.writeTo(output);
    }

    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_ & 0x00000004) == 0x00000004)) {
        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_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, fsGroup_);
      }
      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 && (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 && 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 (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());
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = null;
        } else {
          seLinuxOptionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        runAsUser_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        runAsNonRoot_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        supplementalGroups_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        fsGroup_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodSecurityContext getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodSecurityContext build() {
        io.kubernetes.client.proto.V1.PodSecurityContext result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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.runAsNonRoot_ = runAsNonRoot_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          supplementalGroups_ = java.util.Collections.unmodifiableList(supplementalGroups_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.supplementalGroups_ = supplementalGroups_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.fsGroup_ = fsGroup_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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.hasRunAsNonRoot()) {
          setRunAsNonRoot(other.getRunAsNonRoot());
        }
        if (!other.supplementalGroups_.isEmpty()) {
          if (supplementalGroups_.isEmpty()) {
            supplementalGroups_ = other.supplementalGroups_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureSupplementalGroupsIsMutable();
            supplementalGroups_.addAll(other.supplementalGroups_);
          }
          onChanged();
        }
        if (other.hasFsGroup()) {
          setFsGroup(other.getFsGroup());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 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_ & 0x00000004) == 0x00000004);
      }
      /**
       * <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_ |= 0x00000004;
        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_ & ~0x00000004);
        runAsNonRoot_ = false;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Long> supplementalGroups_ = java.util.Collections.emptyList();
      private void ensureSupplementalGroupsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          supplementalGroups_ = new java.util.ArrayList<java.lang.Long>(supplementalGroups_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <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_ & ~0x00000008);
        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_ & 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_;
      }
      /**
       * <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_ |= 0x00000010;
        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_ & ~0x00000010);
        fsGroup_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getPodController());
      }
      unknownFields.writeTo(output);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (podControllerBuilder_ == null) {
          podController_ = null;
        } else {
          podControllerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodSignature_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodSignature getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodSignature build() {
        io.kubernetes.client.proto.V1.PodSignature result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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
     * </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
     * </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
     * </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
     * </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
     * </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 containers within the pod.
     * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
     * Defaults to "ClusterFirst".
     * 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 containers within the pod.
     * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
     * Defaults to "ClusterFirst".
     * 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 containers within the pod.
     * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
     * Defaults to "ClusterFirst".
     * 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>
     * 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" is a special keyword
     * which indicates 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" is a special keyword
     * which indicates 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" is a special keyword
     * which indicates 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>
   * 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;
      imagePullSecrets_ = java.util.Collections.emptyList();
      hostname_ = "";
      subdomain_ = "";
      schedulerName_ = "";
      tolerations_ = java.util.Collections.emptyList();
      hostAliases_ = java.util.Collections.emptyList();
      priorityClassName_ = "";
      priority_ = 0;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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_ & 0x00000800) == 0x00000800)) {
                subBuilder = securityContext_.toBuilder();
              }
              securityContext_ = input.readMessage(io.kubernetes.client.proto.V1.PodSecurityContext.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(securityContext_);
                securityContext_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000800;
              break;
            }
            case 122: {
              if (!((mutable_bitField0_ & 0x00010000) == 0x00010000)) {
                imagePullSecrets_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.LocalObjectReference>();
                mutable_bitField0_ |= 0x00010000;
              }
              imagePullSecrets_.add(
                  input.readMessage(io.kubernetes.client.proto.V1.LocalObjectReference.PARSER, extensionRegistry));
              break;
            }
            case 130: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00001000;
              hostname_ = bs;
              break;
            }
            case 138: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00002000;
              subdomain_ = bs;
              break;
            }
            case 146: {
              io.kubernetes.client.proto.V1.Affinity.Builder subBuilder = null;
              if (((bitField0_ & 0x00004000) == 0x00004000)) {
                subBuilder = affinity_.toBuilder();
              }
              affinity_ = input.readMessage(io.kubernetes.client.proto.V1.Affinity.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(affinity_);
                affinity_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00004000;
              break;
            }
            case 154: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00008000;
              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_ & 0x00200000) == 0x00200000)) {
                tolerations_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Toleration>();
                mutable_bitField0_ |= 0x00200000;
              }
              tolerations_.add(
                  input.readMessage(io.kubernetes.client.proto.V1.Toleration.PARSER, extensionRegistry));
              break;
            }
            case 186: {
              if (!((mutable_bitField0_ & 0x00400000) == 0x00400000)) {
                hostAliases_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.HostAlias>();
                mutable_bitField0_ |= 0x00400000;
              }
              hostAliases_.add(
                  input.readMessage(io.kubernetes.client.proto.V1.HostAlias.PARSER, extensionRegistry));
              break;
            }
            case 194: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00010000;
              priorityClassName_ = bs;
              break;
            }
            case 200: {
              bitField0_ |= 0x00020000;
              priority_ = input.readInt32();
              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_ & 0x00010000) == 0x00010000)) {
          imagePullSecrets_ = java.util.Collections.unmodifiableList(imagePullSecrets_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          initContainers_ = java.util.Collections.unmodifiableList(initContainers_);
        }
        if (((mutable_bitField0_ & 0x00200000) == 0x00200000)) {
          tolerations_ = java.util.Collections.unmodifiableList(tolerations_);
        }
        if (((mutable_bitField0_ & 0x00400000) == 0x00400000)) {
          hostAliases_ = java.util.Collections.unmodifiableList(hostAliases_);
        }
        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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 7:
          return internalGetNodeSelector();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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
     * </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
     * </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
     * </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
     * </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
     * </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 containers within the pod.
     * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
     * Defaults to "ClusterFirst".
     * 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 containers within the pod.
     * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
     * Defaults to "ClusterFirst".
     * 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 containers within the pod.
     * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
     * Defaults to "ClusterFirst".
     * 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 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_ & 0x00000800) == 0x00000800);
    }
    /**
     * <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_ & 0x00001000) == 0x00001000);
    }
    /**
     * <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_ & 0x00002000) == 0x00002000);
    }
    /**
     * <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_ & 0x00004000) == 0x00004000);
    }
    /**
     * <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_ & 0x00008000) == 0x00008000);
    }
    /**
     * <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" is a special keyword
     * which indicates 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_ & 0x00010000) == 0x00010000);
    }
    /**
     * <pre>
     * If specified, indicates the pod's priority. "SYSTEM" is a special keyword
     * which indicates 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" is a special keyword
     * which indicates 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_ & 0x00020000) == 0x00020000);
    }
    /**
     * <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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(14, getSecurityContext());
      }
      for (int i = 0; i < imagePullSecrets_.size(); i++) {
        output.writeMessage(15, imagePullSecrets_.get(i));
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, hostname_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, subdomain_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(18, getAffinity());
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        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_ & 0x00010000) == 0x00010000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, priorityClassName_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeInt32(25, priority_);
      }
      unknownFields.writeTo(output);
    }

    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_ & 0x00000800) == 0x00000800)) {
        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_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, hostname_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, subdomain_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, getAffinity());
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        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_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, priorityClassName_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(25, priority_);
      }
      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 && (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 && 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 (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();
      }
      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);
    }

    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);
    }
    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);
        }
      }
      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();
        }
      }
      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);
        if (securityContextBuilder_ == null) {
          securityContext_ = null;
        } else {
          securityContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00010000);
        } else {
          imagePullSecretsBuilder_.clear();
        }
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00020000);
        subdomain_ = "";
        bitField0_ = (bitField0_ & ~0x00040000);
        if (affinityBuilder_ == null) {
          affinity_ = null;
        } else {
          affinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        schedulerName_ = "";
        bitField0_ = (bitField0_ & ~0x00100000);
        if (tolerationsBuilder_ == null) {
          tolerations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00200000);
        } else {
          tolerationsBuilder_.clear();
        }
        if (hostAliasesBuilder_ == null) {
          hostAliases_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00400000);
        } else {
          hostAliasesBuilder_.clear();
        }
        priorityClassName_ = "";
        bitField0_ = (bitField0_ & ~0x00800000);
        priority_ = 0;
        bitField0_ = (bitField0_ & ~0x01000000);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodSpec build() {
        io.kubernetes.client.proto.V1.PodSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
        }
        if (securityContextBuilder_ == null) {
          result.securityContext_ = securityContext_;
        } else {
          result.securityContext_ = securityContextBuilder_.build();
        }
        if (imagePullSecretsBuilder_ == null) {
          if (((bitField0_ & 0x00010000) == 0x00010000)) {
            imagePullSecrets_ = java.util.Collections.unmodifiableList(imagePullSecrets_);
            bitField0_ = (bitField0_ & ~0x00010000);
          }
          result.imagePullSecrets_ = imagePullSecrets_;
        } else {
          result.imagePullSecrets_ = imagePullSecretsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.subdomain_ = subdomain_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00004000;
        }
        if (affinityBuilder_ == null) {
          result.affinity_ = affinity_;
        } else {
          result.affinity_ = affinityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.schedulerName_ = schedulerName_;
        if (tolerationsBuilder_ == null) {
          if (((bitField0_ & 0x00200000) == 0x00200000)) {
            tolerations_ = java.util.Collections.unmodifiableList(tolerations_);
            bitField0_ = (bitField0_ & ~0x00200000);
          }
          result.tolerations_ = tolerations_;
        } else {
          result.tolerations_ = tolerationsBuilder_.build();
        }
        if (hostAliasesBuilder_ == null) {
          if (((bitField0_ & 0x00400000) == 0x00400000)) {
            hostAliases_ = java.util.Collections.unmodifiableList(hostAliases_);
            bitField0_ = (bitField0_ & ~0x00400000);
          }
          result.hostAliases_ = hostAliases_;
        } else {
          result.hostAliases_ = hostAliasesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.priorityClassName_ = priorityClassName_;
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.priority_ = priority_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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.hasSecurityContext()) {
          mergeSecurityContext(other.getSecurityContext());
        }
        if (imagePullSecretsBuilder_ == null) {
          if (!other.imagePullSecrets_.isEmpty()) {
            if (imagePullSecrets_.isEmpty()) {
              imagePullSecrets_ = other.imagePullSecrets_;
              bitField0_ = (bitField0_ & ~0x00010000);
            } else {
              ensureImagePullSecretsIsMutable();
              imagePullSecrets_.addAll(other.imagePullSecrets_);
            }
            onChanged();
          }
        } else {
          if (!other.imagePullSecrets_.isEmpty()) {
            if (imagePullSecretsBuilder_.isEmpty()) {
              imagePullSecretsBuilder_.dispose();
              imagePullSecretsBuilder_ = null;
              imagePullSecrets_ = other.imagePullSecrets_;
              bitField0_ = (bitField0_ & ~0x00010000);
              imagePullSecretsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getImagePullSecretsFieldBuilder() : null;
            } else {
              imagePullSecretsBuilder_.addAllMessages(other.imagePullSecrets_);
            }
          }
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00020000;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasSubdomain()) {
          bitField0_ |= 0x00040000;
          subdomain_ = other.subdomain_;
          onChanged();
        }
        if (other.hasAffinity()) {
          mergeAffinity(other.getAffinity());
        }
        if (other.hasSchedulerName()) {
          bitField0_ |= 0x00100000;
          schedulerName_ = other.schedulerName_;
          onChanged();
        }
        if (tolerationsBuilder_ == null) {
          if (!other.tolerations_.isEmpty()) {
            if (tolerations_.isEmpty()) {
              tolerations_ = other.tolerations_;
              bitField0_ = (bitField0_ & ~0x00200000);
            } else {
              ensureTolerationsIsMutable();
              tolerations_.addAll(other.tolerations_);
            }
            onChanged();
          }
        } else {
          if (!other.tolerations_.isEmpty()) {
            if (tolerationsBuilder_.isEmpty()) {
              tolerationsBuilder_.dispose();
              tolerationsBuilder_ = null;
              tolerations_ = other.tolerations_;
              bitField0_ = (bitField0_ & ~0x00200000);
              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_ & ~0x00400000);
            } else {
              ensureHostAliasesIsMutable();
              hostAliases_.addAll(other.hostAliases_);
            }
            onChanged();
          }
        } else {
          if (!other.hostAliases_.isEmpty()) {
            if (hostAliasesBuilder_.isEmpty()) {
              hostAliasesBuilder_.dispose();
              hostAliasesBuilder_ = null;
              hostAliases_ = other.hostAliases_;
              bitField0_ = (bitField0_ & ~0x00400000);
              hostAliasesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHostAliasesFieldBuilder() : null;
            } else {
              hostAliasesBuilder_.addAllMessages(other.hostAliases_);
            }
          }
        }
        if (other.hasPriorityClassName()) {
          bitField0_ |= 0x00800000;
          priorityClassName_ = other.priorityClassName_;
          onChanged();
        }
        if (other.hasPriority()) {
          setPriority(other.getPriority());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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 containers within the pod.
       * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
       * Defaults to "ClusterFirst".
       * 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 containers within the pod.
       * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
       * Defaults to "ClusterFirst".
       * 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 containers within the pod.
       * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
       * Defaults to "ClusterFirst".
       * 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 containers within the pod.
       * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
       * Defaults to "ClusterFirst".
       * 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 containers within the pod.
       * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
       * Defaults to "ClusterFirst".
       * 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 containers within the pod.
       * One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'.
       * Defaults to "ClusterFirst".
       * 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 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_ & 0x00008000) == 0x00008000);
      }
      /**
       * <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_ |= 0x00008000;
        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_ |= 0x00008000;
        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_ & 0x00008000) == 0x00008000) &&
              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_ |= 0x00008000;
        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_ & ~0x00008000);
        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_ |= 0x00008000;
        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_ & 0x00010000) == 0x00010000)) {
          imagePullSecrets_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.LocalObjectReference>(imagePullSecrets_);
          bitField0_ |= 0x00010000;
         }
      }

      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_ & ~0x00010000);
          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_ & 0x00010000) == 0x00010000),
                  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_ & 0x00020000) == 0x00020000);
      }
      /**
       * <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_ |= 0x00020000;
        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_ & ~0x00020000);
        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_ |= 0x00020000;
        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_ & 0x00040000) == 0x00040000);
      }
      /**
       * <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_ |= 0x00040000;
        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_ & ~0x00040000);
        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_ |= 0x00040000;
        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_ & 0x00080000) == 0x00080000);
      }
      /**
       * <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_ |= 0x00080000;
        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_ |= 0x00080000;
        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_ & 0x00080000) == 0x00080000) &&
              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_ |= 0x00080000;
        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_ & ~0x00080000);
        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_ |= 0x00080000;
        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_ & 0x00100000) == 0x00100000);
      }
      /**
       * <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_ |= 0x00100000;
        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_ & ~0x00100000);
        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_ |= 0x00100000;
        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_ & 0x00200000) == 0x00200000)) {
          tolerations_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Toleration>(tolerations_);
          bitField0_ |= 0x00200000;
         }
      }

      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_ & ~0x00200000);
          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_ & 0x00200000) == 0x00200000),
                  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_ & 0x00400000) == 0x00400000)) {
          hostAliases_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.HostAlias>(hostAliases_);
          bitField0_ |= 0x00400000;
         }
      }

      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_ & ~0x00400000);
          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_ & 0x00400000) == 0x00400000),
                  getParentForChildren(),
                  isClean());
          hostAliases_ = null;
        }
        return hostAliasesBuilder_;
      }

      private java.lang.Object priorityClassName_ = "";
      /**
       * <pre>
       * If specified, indicates the pod's priority. "SYSTEM" is a special keyword
       * which indicates 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_ & 0x00800000) == 0x00800000);
      }
      /**
       * <pre>
       * If specified, indicates the pod's priority. "SYSTEM" is a special keyword
       * which indicates 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" is a special keyword
       * which indicates 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" is a special keyword
       * which indicates 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_ |= 0x00800000;
        priorityClassName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If specified, indicates the pod's priority. "SYSTEM" is a special keyword
       * which indicates 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_ & ~0x00800000);
        priorityClassName_ = getDefaultInstance().getPriorityClassName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If specified, indicates the pod's priority. "SYSTEM" is a special keyword
       * which indicates 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_ |= 0x00800000;
        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_ & 0x01000000) == 0x01000000);
      }
      /**
       * <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_ |= 0x01000000;
        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_ & ~0x01000000);
        priority_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * Current condition 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>
     * Current condition 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>
     * Current condition 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>
     * 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://github.com/kubernetes/kubernetes/blob/master/docs/design/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://github.com/kubernetes/kubernetes/blob/master/docs/design/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://github.com/kubernetes/kubernetes/blob/master/docs/design/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.
   * </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_ = "";
      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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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_ |= 0x00000008;
              hostIP_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              podIP_ = bs;
              break;
            }
            case 58: {
              io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = startTime_.toBuilder();
              }
              startTime_ = input.readMessage(io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(startTime_);
                startTime_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                containerStatuses_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>();
                mutable_bitField0_ |= 0x00000100;
              }
              containerStatuses_.add(
                  input.readMessage(io.kubernetes.client.proto.V1.ContainerStatus.PARSER, extensionRegistry));
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              qosClass_ = bs;
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                initContainerStatuses_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>();
                mutable_bitField0_ |= 0x00000080;
              }
              initContainerStatuses_.add(
                  input.readMessage(io.kubernetes.client.proto.V1.ContainerStatus.PARSER, extensionRegistry));
              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_ & 0x00000100) == 0x00000100)) {
          containerStatuses_ = java.util.Collections.unmodifiableList(containerStatuses_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          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;
    }

    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>
     * Current condition 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>
     * Current condition 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>
     * Current condition 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 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_ & 0x00000008) == 0x00000008);
    }
    /**
     * <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_ & 0x00000010) == 0x00000010);
    }
    /**
     * <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_ & 0x00000020) == 0x00000020);
    }
    /**
     * <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://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    public boolean hasQosClass() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <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://github.com/kubernetes/kubernetes/blob/master/docs/design/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://github.com/kubernetes/kubernetes/blob/master/docs/design/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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, hostIP_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, podIP_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, getStartTime());
      }
      for (int i = 0; i < containerStatuses_.size(); i++) {
        output.writeMessage(8, containerStatuses_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, qosClass_);
      }
      for (int i = 0; i < initContainerStatuses_.size(); i++) {
        output.writeMessage(10, initContainerStatuses_.get(i));
      }
      unknownFields.writeTo(output);
    }

    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_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, hostIP_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, podIP_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        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_ & 0x00000040) == 0x00000040)) {
        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));
      }
      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 && (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 (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);
    }

    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);
    }
    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.
     * </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;
      }

      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();
        }
      }
      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);
        hostIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        podIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        if (startTimeBuilder_ == null) {
          startTime_ = null;
        } else {
          startTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (initContainerStatusesBuilder_ == null) {
          initContainerStatuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          initContainerStatusesBuilder_.clear();
        }
        if (containerStatusesBuilder_ == null) {
          containerStatuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          containerStatusesBuilder_.clear();
        }
        qosClass_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodStatus build() {
        io.kubernetes.client.proto.V1.PodStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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.hostIP_ = hostIP_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.podIP_ = podIP_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        if (startTimeBuilder_ == null) {
          result.startTime_ = startTime_;
        } else {
          result.startTime_ = startTimeBuilder_.build();
        }
        if (initContainerStatusesBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            initContainerStatuses_ = java.util.Collections.unmodifiableList(initContainerStatuses_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.initContainerStatuses_ = initContainerStatuses_;
        } else {
          result.initContainerStatuses_ = initContainerStatusesBuilder_.build();
        }
        if (containerStatusesBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)) {
            containerStatuses_ = java.util.Collections.unmodifiableList(containerStatuses_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.containerStatuses_ = containerStatuses_;
        } else {
          result.containerStatuses_ = containerStatusesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000040;
        }
        result.qosClass_ = qosClass_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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.hasHostIP()) {
          bitField0_ |= 0x00000010;
          hostIP_ = other.hostIP_;
          onChanged();
        }
        if (other.hasPodIP()) {
          bitField0_ |= 0x00000020;
          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_ & ~0x00000080);
            } else {
              ensureInitContainerStatusesIsMutable();
              initContainerStatuses_.addAll(other.initContainerStatuses_);
            }
            onChanged();
          }
        } else {
          if (!other.initContainerStatuses_.isEmpty()) {
            if (initContainerStatusesBuilder_.isEmpty()) {
              initContainerStatusesBuilder_.dispose();
              initContainerStatusesBuilder_ = null;
              initContainerStatuses_ = other.initContainerStatuses_;
              bitField0_ = (bitField0_ & ~0x00000080);
              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_ & ~0x00000100);
            } else {
              ensureContainerStatusesIsMutable();
              containerStatuses_.addAll(other.containerStatuses_);
            }
            onChanged();
          }
        } else {
          if (!other.containerStatuses_.isEmpty()) {
            if (containerStatusesBuilder_.isEmpty()) {
              containerStatusesBuilder_.dispose();
              containerStatusesBuilder_ = null;
              containerStatuses_ = other.containerStatuses_;
              bitField0_ = (bitField0_ & ~0x00000100);
              containerStatusesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getContainerStatusesFieldBuilder() : null;
            } else {
              containerStatusesBuilder_.addAllMessages(other.containerStatuses_);
            }
          }
        }
        if (other.hasQosClass()) {
          bitField0_ |= 0x00000200;
          qosClass_ = other.qosClass_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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>
       * Current condition 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>
       * Current condition 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>
       * Current condition 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>
       * Current condition 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>
       * Current condition 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>
       * Current condition 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 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)) {
          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_ |= 0x00000010;
        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_ & ~0x00000010);
        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_ |= 0x00000010;
        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_ & 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)) {
          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_ |= 0x00000020;
        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_ & ~0x00000020);
        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_ |= 0x00000020;
        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_ & 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() {
        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_ |= 0x00000040;
        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_ |= 0x00000040;
        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_ & 0x00000040) == 0x00000040) &&
              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_ |= 0x00000040;
        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_ & ~0x00000040);
        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_ |= 0x00000040;
        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_ & 0x00000080) == 0x00000080)) {
          initContainerStatuses_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>(initContainerStatuses_);
          bitField0_ |= 0x00000080;
         }
      }

      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_ & ~0x00000080);
          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_ & 0x00000080) == 0x00000080),
                  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_ & 0x00000100) == 0x00000100)) {
          containerStatuses_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>(containerStatuses_);
          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> 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_ & ~0x00000100);
          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_ & 0x00000100) == 0x00000100),
                  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://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public boolean hasQosClass() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <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://github.com/kubernetes/kubernetes/blob/master/docs/design/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://github.com/kubernetes/kubernetes/blob/master/docs/design/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://github.com/kubernetes/kubernetes/blob/master/docs/design/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_ |= 0x00000200;
        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://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public Builder clearQosClass() {
        bitField0_ = (bitField0_ & ~0x00000200);
        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://github.com/kubernetes/kubernetes/blob/master/docs/design/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_ |= 0x00000200;
        qosClass_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodStatusResult getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodStatusResult.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodStatusResult build() {
        io.kubernetes.client.proto.V1.PodStatusResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodTemplate_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodTemplate getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodTemplate.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodTemplate build() {
        io.kubernetes.client.proto.V1.PodTemplate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodTemplateList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodTemplateList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodTemplateList build() {
        io.kubernetes.client.proto.V1.PodTemplateList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.PodTemplateSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PodTemplateSpec build() {
        io.kubernetes.client.proto.V1.PodTemplateSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        volumeID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.PortworxVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PortworxVolumeSource build() {
        io.kubernetes.client.proto.V1.PortworxVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              uid_ = bs;
              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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Preconditions_descriptor;
      }

      public io.kubernetes.client.proto.V1.Preconditions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Preconditions build() {
        io.kubernetes.client.proto.V1.Preconditions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor;
      }

      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry build() {
        io.kubernetes.client.proto.V1.PreferAvoidPodsEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        weight_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (preferenceBuilder_ == null) {
          preference_ = null;
        } else {
          preferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor;
      }

      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PreferredSchedulingTerm.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm build() {
        io.kubernetes.client.proto.V1.PreferredSchedulingTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Probe_descriptor;
      }

      public io.kubernetes.client.proto.V1.Probe getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Probe.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Probe build() {
        io.kubernetes.client.proto.V1.Probe result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.ProjectedVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ProjectedVolumeSource build() {
        io.kubernetes.client.proto.V1.ProjectedVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.QuobyteVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.QuobyteVolumeSource build() {
        io.kubernetes.client.proto.V1.QuobyteVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.QuobyteVolumeSource 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.RBDVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.RBDVolumeSource build() {
        io.kubernetes.client.proto.V1.RBDVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor;
      }

      public io.kubernetes.client.proto.V1.RangeAllocation getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.RangeAllocation.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.RangeAllocation build() {
        io.kubernetes.client.proto.V1.RangeAllocation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ReplicationController_descriptor;
      }

      public io.kubernetes.client.proto.V1.ReplicationController getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationController.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ReplicationController build() {
        io.kubernetes.client.proto.V1.ReplicationController result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor;
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerCondition.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerCondition build() {
        io.kubernetes.client.proto.V1.ReplicationControllerCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor;
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerList build() {
        io.kubernetes.client.proto.V1.ReplicationControllerList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 2:
          return internalGetSelector();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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);
        }
      }
      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerSpec build() {
        io.kubernetes.client.proto.V1.ReplicationControllerSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ReplicationControllerStatus build() {
        io.kubernetes.client.proto.V1.ReplicationControllerStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor;
      }

      public io.kubernetes.client.proto.V1.ResourceFieldSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ResourceFieldSelector build() {
        io.kubernetes.client.proto.V1.ResourceFieldSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor;
      }

      public io.kubernetes.client.proto.V1.ResourceQuota getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuota.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ResourceQuota build() {
        io.kubernetes.client.proto.V1.ResourceQuota result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor;
      }

      public io.kubernetes.client.proto.V1.ResourceQuotaList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuotaList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ResourceQuotaList build() {
        io.kubernetes.client.proto.V1.ResourceQuotaList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * </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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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>
   * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetHard();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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);
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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));
      }
      unknownFields.writeTo(output);
    }

    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();
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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);
        }
      }
      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) {
        }
      }
      public Builder clear() {
        super.clear();
        internalGetMutableHard().clear();
        scopes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.ResourceQuotaSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ResourceQuotaSpec build() {
        io.kubernetes.client.proto.V1.ResourceQuotaSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.hard_ = internalGetHard();
        result.hard_.makeImmutable();
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          scopes_ = scopes_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.scopes_ = scopes_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    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);
      }
    }
    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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
     * +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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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);
        }
      }
      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) {
        }
      }
      public Builder clear() {
        super.clear();
        internalGetMutableHard().clear();
        internalGetMutableUsed().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.ResourceQuotaStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ResourceQuotaStatus build() {
        io.kubernetes.client.proto.V1.ResourceQuotaStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md
       * +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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    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);
      }
    }
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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);
        }
      }
      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) {
        }
      }
      public Builder clear() {
        super.clear();
        internalGetMutableLimits().clear();
        internalGetMutableRequests().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor;
      }

      public io.kubernetes.client.proto.V1.ResourceRequirements getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ResourceRequirements build() {
        io.kubernetes.client.proto.V1.ResourceRequirements result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        role_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        level_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.SELinuxOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SELinuxOptions build() {
        io.kubernetes.client.proto.V1.SELinuxOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.SELinuxOptions 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 Protection Domain for the configured storage (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    boolean hasProtectionDomain();
    /**
     * <pre>
     * The name of the Protection Domain for the configured storage (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    java.lang.String getProtectionDomain();
    /**
     * <pre>
     * The name of the Protection Domain for the configured storage (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    com.google.protobuf.ByteString
        getProtectionDomainBytes();

    /**
     * <pre>
     * The Storage Pool associated with the protection domain (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    boolean hasStoragePool();
    /**
     * <pre>
     * The Storage Pool associated with the protection domain (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    java.lang.String getStoragePool();
    /**
     * <pre>
     * The Storage Pool associated with the protection domain (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    com.google.protobuf.ByteString
        getStoragePoolBytes();

    /**
     * <pre>
     * Indicates whether the storage for a volume should be thick or thin (defaults to "thin").
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    boolean hasStorageMode();
    /**
     * <pre>
     * Indicates whether the storage for a volume should be thick or thin (defaults to "thin").
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    java.lang.String getStorageMode();
    /**
     * <pre>
     * Indicates whether the storage for a volume should be thick or thin (defaults to "thin").
     * +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". Implicitly inferred to be "ext4" if unspecified.
     * +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". Implicitly inferred to be "ext4" if unspecified.
     * +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". Implicitly inferred to be "ext4" if unspecified.
     * +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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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 Protection Domain for the configured storage (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public boolean hasProtectionDomain() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * The name of the Protection Domain for the configured storage (defaults to "default").
     * +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 Protection Domain for the configured storage (defaults to "default").
     * +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 Storage Pool associated with the protection domain (defaults to "default").
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public boolean hasStoragePool() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     * The Storage Pool associated with the protection domain (defaults to "default").
     * +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 Storage Pool associated with the protection domain (defaults to "default").
     * +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 thick or thin (defaults to "thin").
     * +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 thick or thin (defaults to "thin").
     * +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 thick or thin (defaults to "thin").
     * +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". Implicitly inferred to be "ext4" if unspecified.
     * +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". Implicitly inferred to be "ext4" if unspecified.
     * +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". Implicitly inferred to be "ext4" if unspecified.
     * +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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource build() {
        io.kubernetes.client.proto.V1.ScaleIOVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 Protection Domain for the configured storage (defaults to "default").
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public boolean hasProtectionDomain() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * The name of the Protection Domain for the configured storage (defaults to "default").
       * +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 Protection Domain for the configured storage (defaults to "default").
       * +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 Protection Domain for the configured storage (defaults to "default").
       * +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 Protection Domain for the configured storage (defaults to "default").
       * +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 Protection Domain for the configured storage (defaults to "default").
       * +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 Storage Pool associated with the protection domain (defaults to "default").
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public boolean hasStoragePool() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       * The Storage Pool associated with the protection domain (defaults to "default").
       * +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 Storage Pool associated with the protection domain (defaults to "default").
       * +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 Storage Pool associated with the protection domain (defaults to "default").
       * +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 Storage Pool associated with the protection domain (defaults to "default").
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder clearStoragePool() {
        bitField0_ = (bitField0_ & ~0x00000020);
        storagePool_ = getDefaultInstance().getStoragePool();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The Storage Pool associated with the protection domain (defaults to "default").
       * +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 thick or thin (defaults to "thin").
       * +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 thick or thin (defaults to "thin").
       * +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 thick or thin (defaults to "thin").
       * +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 thick or thin (defaults to "thin").
       * +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 thick or thin (defaults to "thin").
       * +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 thick or thin (defaults to "thin").
       * +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". Implicitly inferred to be "ext4" if unspecified.
       * +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". Implicitly inferred to be "ext4" if unspecified.
       * +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". Implicitly inferred to be "ext4" if unspecified.
       * +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". Implicitly inferred to be "ext4" if unspecified.
       * +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". Implicitly inferred to be "ext4" if unspecified.
       * +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". Implicitly inferred to be "ext4" if unspecified.
       * +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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.ScaleIOVolumeSource 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    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);
      }
    }
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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);
        }
      }
      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Secret_descriptor;
      }

      public io.kubernetes.client.proto.V1.Secret getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Secret.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Secret build() {
        io.kubernetes.client.proto.V1.Secret result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.SecretEnvSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SecretEnvSource build() {
        io.kubernetes.client.proto.V1.SecretEnvSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor;
      }

      public io.kubernetes.client.proto.V1.SecretKeySelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SecretKeySelector build() {
        io.kubernetes.client.proto.V1.SecretKeySelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecretList_descriptor;
      }

      public io.kubernetes.client.proto.V1.SecretList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SecretList build() {
        io.kubernetes.client.proto.V1.SecretList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecretProjection_descriptor;
      }

      public io.kubernetes.client.proto.V1.SecretProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SecretProjection build() {
        io.kubernetes.client.proto.V1.SecretProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.SecretProjection 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.SecretVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SecretVolumeSource build() {
        io.kubernetes.client.proto.V1.SecretVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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>
     * 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 it's 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 it's 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>
   * 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;
      runAsNonRoot_ = false;
      readOnlyRootFilesystem_ = false;
      allowPrivilegeEscalation_ = false;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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_ |= 0x00000010;
              runAsNonRoot_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              readOnlyRootFilesystem_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              allowPrivilegeEscalation_ = input.readBool();
              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;
    }

    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 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_ & 0x00000010) == 0x00000010);
    }
    /**
     * <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_ & 0x00000020) == 0x00000020);
    }
    /**
     * <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 it's 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_ & 0x00000040) == 0x00000040);
    }
    /**
     * <pre>
     * AllowPrivilegeEscalation controls whether a process can gain more
     * privileges than it's 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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, runAsNonRoot_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, readOnlyRootFilesystem_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, allowPrivilegeEscalation_);
      }
      unknownFields.writeTo(output);
    }

    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_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, runAsNonRoot_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, readOnlyRootFilesystem_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, allowPrivilegeEscalation_);
      }
      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 && (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 && 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 (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());
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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);
        runAsNonRoot_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        readOnlyRootFilesystem_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        allowPrivilegeEscalation_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecurityContext_descriptor;
      }

      public io.kubernetes.client.proto.V1.SecurityContext getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SecurityContext build() {
        io.kubernetes.client.proto.V1.SecurityContext result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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.runAsNonRoot_ = runAsNonRoot_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.readOnlyRootFilesystem_ = readOnlyRootFilesystem_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.allowPrivilegeEscalation_ = allowPrivilegeEscalation_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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.hasRunAsNonRoot()) {
          setRunAsNonRoot(other.getRunAsNonRoot());
        }
        if (other.hasReadOnlyRootFilesystem()) {
          setReadOnlyRootFilesystem(other.getReadOnlyRootFilesystem());
        }
        if (other.hasAllowPrivilegeEscalation()) {
          setAllowPrivilegeEscalation(other.getAllowPrivilegeEscalation());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 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_ & 0x00000010) == 0x00000010);
      }
      /**
       * <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_ |= 0x00000010;
        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_ & ~0x00000010);
        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_ & 0x00000020) == 0x00000020);
      }
      /**
       * <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_ |= 0x00000020;
        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_ & ~0x00000020);
        readOnlyRootFilesystem_ = false;
        onChanged();
        return this;
      }

      private boolean allowPrivilegeEscalation_ ;
      /**
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than it's 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_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than it's 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 it's 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_ |= 0x00000040;
        allowPrivilegeEscalation_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than it's 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_ & ~0x00000040);
        allowPrivilegeEscalation_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getReference());
      }
      unknownFields.writeTo(output);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (referenceBuilder_ == null) {
          reference_ = null;
        } else {
          referenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SerializedReference_descriptor;
      }

      public io.kubernetes.client.proto.V1.SerializedReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SerializedReference.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.SerializedReference build() {
        io.kubernetes.client.proto.V1.SerializedReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Service_descriptor;
      }

      public io.kubernetes.client.proto.V1.Service getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Service.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Service build() {
        io.kubernetes.client.proto.V1.Service result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServiceAccount getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceAccount.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServiceAccount build() {
        io.kubernetes.client.proto.V1.ServiceAccount result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServiceAccountList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceAccountList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServiceAccountList build() {
        io.kubernetes.client.proto.V1.ServiceAccountList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.ServiceAccountList 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServiceList_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServiceList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceList.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServiceList build() {
        io.kubernetes.client.proto.V1.ServiceList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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" and "UDP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    boolean hasProtocol();
    /**
     * <pre>
     * The IP protocol for this port. Supports "TCP" and "UDP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    java.lang.String getProtocol();
    /**
     * <pre>
     * The IP protocol for this port. Supports "TCP" and "UDP".
     * 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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" and "UDP".
     * 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" and "UDP".
     * 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" and "UDP".
     * 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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServicePort_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServicePort getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServicePort.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServicePort build() {
        io.kubernetes.client.proto.V1.ServicePort result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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" and "UDP".
       * 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" and "UDP".
       * 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" and "UDP".
       * 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" and "UDP".
       * 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" and "UDP".
       * 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" and "UDP".
       * 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              path_ = bs;
              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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServiceProxyOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceProxyOptions.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServiceProxyOptions build() {
        io.kubernetes.client.proto.V1.ServiceProxyOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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 DNS name 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 DNS name 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 DNS name 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>
   * 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;
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 2:
          return internalGetSelector();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    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 DNS name 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 DNS name 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 DNS name 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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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);
        }
      }
      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServiceSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServiceSpec build() {
        io.kubernetes.client.proto.V1.ServiceSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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 DNS name 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 DNS name 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 DNS name 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 DNS name 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 DNS name 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 DNS name 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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLoadBalancer());
      }
      unknownFields.writeTo(output);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (loadBalancerBuilder_ == null) {
          loadBalancer_ = null;
        } else {
          loadBalancerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor;
      }

      public io.kubernetes.client.proto.V1.ServiceStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.ServiceStatus build() {
        io.kubernetes.client.proto.V1.ServiceStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.ServiceStatus 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.StorageOSVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.StorageOSVolumeSource build() {
        io.kubernetes.client.proto.V1.StorageOSVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Sysctl_descriptor;
      }

      public io.kubernetes.client.proto.V1.Sysctl getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Sysctl.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Sysctl build() {
        io.kubernetes.client.proto.V1.Sysctl result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        if (portBuilder_ == null) {
          port_ = null;
        } else {
          portBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        host_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor;
      }

      public io.kubernetes.client.proto.V1.TCPSocketAction getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.TCPSocketAction build() {
        io.kubernetes.client.proto.V1.TCPSocketAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <pre>
     * Required. The taint key to be applied to a node.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <pre>
     * Required. The taint key to be applied to a node.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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 "effect" on
   * any pod that 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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 "effect" on
     * any pod that 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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Taint_descriptor;
      }

      public io.kubernetes.client.proto.V1.Taint getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Taint.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Taint build() {
        io.kubernetes.client.proto.V1.Taint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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.
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Toleration_descriptor;
      }

      public io.kubernetes.client.proto.V1.Toleration getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Toleration.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Toleration build() {
        io.kubernetes.client.proto.V1.Toleration result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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
       * +patchMergeKey=key
       * +patchStrategy=merge
       * </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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.Toleration 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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (volumeSourceBuilder_ == null) {
          volumeSource_ = null;
        } else {
          volumeSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Volume_descriptor;
      }

      public io.kubernetes.client.proto.V1.Volume getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Volume.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.Volume build() {
        io.kubernetes.client.proto.V1.Volume result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.Volume 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>
   * 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_ = "";
    }

    @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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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_);
      }
      unknownFields.writeTo(output);
    }

    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_);
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        mountPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        subPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_VolumeMount_descriptor;
      }

      public io.kubernetes.client.proto.V1.VolumeMount getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeMount.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.VolumeMount build() {
        io.kubernetes.client.proto.V1.VolumeMount result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    public io.kubernetes.client.proto.V1.VolumeMount 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
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    boolean hasSecret();
    /**
     * <pre>
     * information about the secret data to project
     * </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
     * </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
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    boolean hasDownwardAPI();
    /**
     * <pre>
     * information about the downwardAPI data to project
     * </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
     * </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
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    boolean hasConfigMap();
    /**
     * <pre>
     * information about the configMap data to project
     * </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
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder getConfigMapOrBuilder();
  }
  /**
   * <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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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
     * </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_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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());
      }
      unknownFields.writeTo(output);
    }

    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());
      }
      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 && 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();
      }
      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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor;
      }

      public io.kubernetes.client.proto.V1.VolumeProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeProjection.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.VolumeProjection build() {
        io.kubernetes.client.proto.V1.VolumeProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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
       * </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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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.
     * +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.
     * +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.
     * +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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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.
     * +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.
     * +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.
     * +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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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. This is an
     * alpha feature and may change in future.
     * +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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      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;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_VolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.VolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.VolumeSource build() {
        io.kubernetes.client.proto.V1.VolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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.
       * +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.
       * +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.
       * +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.
       * +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.
       * +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.
       * +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.
       * +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.
       * +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.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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. This is an
       * alpha feature and may change in future.
       * +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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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) {
        }
      }
      public Builder clear() {
        super.clear();
        volumePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        storagePolicyName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        storagePolicyID_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor;
      }

      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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();
      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;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                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;
            }
          }
        }
      } 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;
    }

    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    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);
    }

    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);
    }

    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);
    }
    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;
      }

      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();
        }
      }
      public Builder clear() {
        super.clear();
        weight_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (podAffinityTermBuilder_ == null) {
          podAffinityTerm_ = null;
        } else {
          podAffinityTermBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor;
      }

      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance();
      }

      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm build() {
        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      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;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      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;
      }

      public final boolean isInitialized() {
        return true;
      }

      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_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      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>() {
      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;
    }

    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_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_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_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_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_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_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_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_DeleteOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_DeleteOptions_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_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_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_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_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_ListOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ListOptions_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_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_ObjectMeta_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ObjectMeta_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_core_v1_ObjectMeta_LabelsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ObjectMeta_LabelsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_api_core_v1_ObjectMeta_AnnotationsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ObjectMeta_AnnotationsEntry_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_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_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_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_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_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_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_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_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_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_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_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_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\010v1.proto\022\022k8s.io.api.core.v1\0324k8s.io/a" +
      "pimachinery/pkg/api/resource/generated.p" +
      "roto\0324k8s.io/apimachinery/pkg/apis/meta/" +
      "v1/generated.proto\032/k8s.io/apimachinery/" +
      "pkg/runtime/generated.proto\0326k8s.io/apim" +
      "achinery/pkg/runtime/schema/generated.pr" +
      "oto\0323k8s.io/apimachinery/pkg/util/intstr" +
      "/generated.proto\"i\n AWSElasticBlockStore" +
      "VolumeSource\022\020\n\010volumeID\030\001 \001(\t\022\016\n\006fsType" +
      "\030\002 \001(\t\022\021\n\tpartition\030\003 \001(\005\022\020\n\010readOnly\030\004 ",
      "\001(\010\"\266\001\n\010Affinity\0226\n\014nodeAffinity\030\001 \001(\0132 " +
      ".k8s.io.api.core.v1.NodeAffinity\0224\n\013podA" +
      "ffinity\030\002 \001(\0132\037.k8s.io.api.core.v1.PodAf" +
      "finity\022<\n\017podAntiAffinity\030\003 \001(\0132#.k8s.io" +
      ".api.core.v1.PodAntiAffinity\"2\n\016Attached" +
      "Volume\022\014\n\004name\030\001 \001(\t\022\022\n\ndevicePath\030\002 \001(\t" +
      "\"N\n\tAvoidPods\022A\n\017preferAvoidPods\030\001 \003(\0132(" +
      ".k8s.io.api.core.v1.PreferAvoidPodsEntry" +
      "\"\177\n\025AzureDiskVolumeSource\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\004k" +
      "ind\030\006 \001(\t\"P\n\025AzureFileVolumeSource\022\022\n\nse" +
      "cretName\030\001 \001(\t\022\021\n\tshareName\030\002 \001(\t\022\020\n\010rea" +
      "dOnly\030\003 \001(\010\"\202\001\n\007Binding\022B\n\010metadata\030\001 \001(" +
      "\01320.k8s.io.apimachinery.pkg.apis.meta.v1" +
      ".ObjectMeta\0223\n\006target\030\002 \001(\0132#.k8s.io.api" +
      ".core.v1.ObjectReference\")\n\014Capabilities" +
      "\022\013\n\003add\030\001 \003(\t\022\014\n\004drop\030\002 \003(\t\"\245\001\n\022CephFSVo" +
      "lumeSource\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\nsecretFile\030\004 \001(\t\022;\n\t",
      "secretRef\030\005 \001(\0132(.k8s.io.api.core.v1.Loc" +
      "alObjectReference\022\020\n\010readOnly\030\006 \001(\010\"H\n\022C" +
      "inderVolumeSource\022\020\n\010volumeID\030\001 \001(\t\022\016\n\006f" +
      "sType\030\002 \001(\t\022\020\n\010readOnly\030\003 \001(\010\"R\n\022Compone" +
      "ntCondition\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\017Co" +
      "mponentStatus\022B\n\010metadata\030\001 \001(\01320.k8s.io" +
      ".apimachinery.pkg.apis.meta.v1.ObjectMet" +
      "a\022:\n\nconditions\030\002 \003(\0132&.k8s.io.api.core." +
      "v1.ComponentCondition\"\213\001\n\023ComponentStatu",
      "sList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimach" +
      "inery.pkg.apis.meta.v1.ListMeta\0222\n\005items" +
      "\030\002 \003(\0132#.k8s.io.api.core.v1.ComponentSta" +
      "tus\"\263\001\n\tConfigMap\022B\n\010metadata\030\001 \001(\01320.k8" +
      "s.io.apimachinery.pkg.apis.meta.v1.Objec" +
      "tMeta\0225\n\004data\030\002 \003(\0132\'.k8s.io.api.core.v1" +
      ".ConfigMap.DataEntry\032+\n\tDataEntry\022\013\n\003key" +
      "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"n\n\022ConfigMapEn" +
      "vSource\022F\n\024localObjectReference\030\001 \001(\0132(." +
      "k8s.io.api.core.v1.LocalObjectReference\022",
      "\020\n\010optional\030\002 \001(\010\"}\n\024ConfigMapKeySelecto" +
      "r\022F\n\024localObjectReference\030\001 \001(\0132(.k8s.io" +
      ".api.core.v1.LocalObjectReference\022\013\n\003key" +
      "\030\002 \001(\t\022\020\n\010optional\030\003 \001(\010\"\177\n\rConfigMapLis" +
      "t\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimachiner" +
      "y.pkg.apis.meta.v1.ListMeta\022,\n\005items\030\002 \003" +
      "(\0132\035.k8s.io.api.core.v1.ConfigMap\"\235\001\n\023Co" +
      "nfigMapProjection\022F\n\024localObjectReferenc" +
      "e\030\001 \001(\0132(.k8s.io.api.core.v1.LocalObject" +
      "Reference\022,\n\005items\030\002 \003(\0132\035.k8s.io.api.co",
      "re.v1.KeyToPath\022\020\n\010optional\030\004 \001(\010\"\264\001\n\025Co" +
      "nfigMapVolumeSource\022F\n\024localObjectRefere" +
      "nce\030\001 \001(\0132(.k8s.io.api.core.v1.LocalObje" +
      "ctReference\022,\n\005items\030\002 \003(\0132\035.k8s.io.api." +
      "core.v1.KeyToPath\022\023\n\013defaultMode\030\003 \001(\005\022\020" +
      "\n\010optional\030\004 \001(\010\"\275\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\004" +
      "args\030\004 \003(\t\022\022\n\nworkingDir\030\005 \001(\t\0220\n\005ports\030" +
      "\006 \003(\0132!.k8s.io.api.core.v1.ContainerPort" +
      "\0222\n\007envFrom\030\023 \003(\0132!.k8s.io.api.core.v1.E",
      "nvFromSource\022\'\n\003env\030\007 \003(\0132\032.k8s.io.api.c" +
      "ore.v1.EnvVar\022;\n\tresources\030\010 \001(\0132(.k8s.i" +
      "o.api.core.v1.ResourceRequirements\0225\n\014vo" +
      "lumeMounts\030\t \003(\0132\037.k8s.io.api.core.v1.Vo" +
      "lumeMount\0220\n\rlivenessProbe\030\n \001(\0132\031.k8s.i" +
      "o.api.core.v1.Probe\0221\n\016readinessProbe\030\013 " +
      "\001(\0132\031.k8s.io.api.core.v1.Probe\0220\n\tlifecy" +
      "cle\030\014 \001(\0132\035.k8s.io.api.core.v1.Lifecycle" +
      "\022\036\n\026terminationMessagePath\030\r \001(\t\022 \n\030term" +
      "inationMessagePolicy\030\024 \001(\t\022\027\n\017imagePullP",
      "olicy\030\016 \001(\t\022<\n\017securityContext\030\017 \001(\0132#.k" +
      "8s.io.api.core.v1.SecurityContext\022\r\n\005std" +
      "in\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\tsiz" +
      "eBytes\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).k8s" +
      ".io.api.core.v1.ContainerStateWaiting\022:\n" +
      "\007running\030\002 \001(\0132).k8s.io.api.core.v1.Cont",
      "ainerStateRunning\022@\n\nterminated\030\003 \001(\0132,." +
      "k8s.io.api.core.v1.ContainerStateTermina" +
      "ted\"V\n\025ContainerStateRunning\022=\n\tstartedA" +
      "t\030\001 \001(\0132*.k8s.io.apimachinery.pkg.apis.m" +
      "eta.v1.Time\"\361\001\n\030ContainerStateTerminated" +
      "\022\020\n\010exitCode\030\001 \001(\005\022\016\n\006signal\030\002 \001(\005\022\016\n\006re" +
      "ason\030\003 \001(\t\022\017\n\007message\030\004 \001(\t\022=\n\tstartedAt" +
      "\030\005 \001(\0132*.k8s.io.apimachinery.pkg.apis.me" +
      "ta.v1.Time\022>\n\nfinishedAt\030\006 \001(\0132*.k8s.io." +
      "apimachinery.pkg.apis.meta.v1.Time\022\023\n\013co",
      "ntainerID\030\007 \001(\t\"8\n\025ContainerStateWaiting" +
      "\022\016\n\006reason\030\001 \001(\t\022\017\n\007message\030\002 \001(\t\"\343\001\n\017Co" +
      "ntainerStatus\022\014\n\004name\030\001 \001(\t\0221\n\005state\030\002 \001" +
      "(\0132\".k8s.io.api.core.v1.ContainerState\0225" +
      "\n\tlastState\030\003 \001(\0132\".k8s.io.api.core.v1.C" +
      "ontainerState\022\r\n\005ready\030\004 \001(\010\022\024\n\014restartC" +
      "ount\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\016DaemonEndpoin" +
      "t\022\014\n\004Port\030\001 \001(\005\"\232\001\n\rDeleteOptions\022\032\n\022gra" +
      "cePeriodSeconds\030\001 \001(\003\0228\n\rpreconditions\030\002",
      " \001(\0132!.k8s.io.api.core.v1.Preconditions\022" +
      "\030\n\020orphanDependents\030\003 \001(\010\022\031\n\021propagation" +
      "Policy\030\004 \001(\t\"Q\n\025DownwardAPIProjection\0228\n" +
      "\005items\030\001 \003(\0132).k8s.io.api.core.v1.Downwa" +
      "rdAPIVolumeFile\"\263\001\n\025DownwardAPIVolumeFil" +
      "e\022\014\n\004path\030\001 \001(\t\0229\n\010fieldRef\030\002 \001(\0132\'.k8s." +
      "io.api.core.v1.ObjectFieldSelector\022C\n\020re" +
      "sourceFieldRef\030\003 \001(\0132).k8s.io.api.core.v" +
      "1.ResourceFieldSelector\022\014\n\004mode\030\004 \001(\005\"h\n" +
      "\027DownwardAPIVolumeSource\0228\n\005items\030\001 \003(\0132",
      ").k8s.io.api.core.v1.DownwardAPIVolumeFi" +
      "le\022\023\n\013defaultMode\030\002 \001(\005\"i\n\024EmptyDirVolum" +
      "eSource\022\016\n\006medium\030\001 \001(\t\022A\n\tsizeLimit\030\002 \001" +
      "(\0132..k8s.io.apimachinery.pkg.api.resourc" +
      "e.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.v1.Ob" +
      "jectReference\"<\n\014EndpointPort\022\014\n\004name\030\001 " +
      "\001(\t\022\014\n\004port\030\002 \001(\005\022\020\n\010protocol\030\003 \001(\t\"\271\001\n\016" +
      "EndpointSubset\0226\n\taddresses\030\001 \003(\0132#.k8s.",
      "io.api.core.v1.EndpointAddress\022>\n\021notRea" +
      "dyAddresses\030\002 \003(\0132#.k8s.io.api.core.v1.E" +
      "ndpointAddress\022/\n\005ports\030\003 \003(\0132 .k8s.io.a" +
      "pi.core.v1.EndpointPort\"\204\001\n\tEndpoints\022B\n" +
      "\010metadata\030\001 \001(\01320.k8s.io.apimachinery.pk" +
      "g.apis.meta.v1.ObjectMeta\0223\n\007subsets\030\002 \003" +
      "(\0132\".k8s.io.api.core.v1.EndpointSubset\"\177" +
      "\n\rEndpointsList\022@\n\010metadata\030\001 \001(\0132..k8s." +
      "io.apimachinery.pkg.apis.meta.v1.ListMet" +
      "a\022,\n\005items\030\002 \003(\0132\035.k8s.io.api.core.v1.En",
      "dpoints\"\225\001\n\rEnvFromSource\022\016\n\006prefix\030\001 \001(" +
      "\t\022<\n\014configMapRef\030\002 \001(\0132&.k8s.io.api.cor" +
      "e.v1.ConfigMapEnvSource\0226\n\tsecretRef\030\003 \001" +
      "(\0132#.k8s.io.api.core.v1.SecretEnvSource\"" +
      "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.E" +
      "nvVarSource\"\216\002\n\014EnvVarSource\0229\n\010fieldRef" +
      "\030\001 \001(\0132\'.k8s.io.api.core.v1.ObjectFieldS" +
      "elector\022C\n\020resourceFieldRef\030\002 \001(\0132).k8s." +
      "io.api.core.v1.ResourceFieldSelector\022A\n\017",
      "configMapKeyRef\030\003 \001(\0132(.k8s.io.api.core." +
      "v1.ConfigMapKeySelector\022;\n\014secretKeyRef\030" +
      "\004 \001(\0132%.k8s.io.api.core.v1.SecretKeySele" +
      "ctor\"\376\002\n\005Event\022B\n\010metadata\030\001 \001(\01320.k8s.i" +
      "o.apimachinery.pkg.apis.meta.v1.ObjectMe" +
      "ta\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.k8s.i" +
      "o.api.core.v1.EventSource\022B\n\016firstTimest" +
      "amp\030\006 \001(\0132*.k8s.io.apimachinery.pkg.apis",
      ".meta.v1.Time\022A\n\rlastTimestamp\030\007 \001(\0132*.k" +
      "8s.io.apimachinery.pkg.apis.meta.v1.Time" +
      "\022\r\n\005count\030\010 \001(\005\022\014\n\004type\030\t \001(\t\"w\n\tEventLi" +
      "st\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimachine" +
      "ry.pkg.apis.meta.v1.ListMeta\022(\n\005items\030\002 " +
      "\003(\0132\031.k8s.io.api.core.v1.Event\".\n\013EventS" +
      "ource\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\"S\n\016FCVolum" +
      "eSource\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\"\365\001\n\020F",
      "lexVolumeSource\022\016\n\006driver\030\001 \001(\t\022\016\n\006fsTyp" +
      "e\030\002 \001(\t\022;\n\tsecretRef\030\003 \001(\0132(.k8s.io.api." +
      "core.v1.LocalObjectReference\022\020\n\010readOnly" +
      "\030\004 \001(\010\022B\n\007options\030\005 \003(\01321.k8s.io.api.cor" +
      "e.v1.FlexVolumeSource.OptionsEntry\032.\n\014Op" +
      "tionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\002" +
      "8\001\"?\n\023FlockerVolumeSource\022\023\n\013datasetName" +
      "\030\001 \001(\t\022\023\n\013datasetUUID\030\002 \001(\t\"d\n\035GCEPersis" +
      "tentDiskVolumeSource\022\016\n\006pdName\030\001 \001(\t\022\016\n\006" +
      "fsType\030\002 \001(\t\022\021\n\tpartition\030\003 \001(\005\022\020\n\010readO",
      "nly\030\004 \001(\010\"N\n\023GitRepoVolumeSource\022\022\n\nrepo" +
      "sitory\030\001 \001(\t\022\020\n\010revision\030\002 \001(\t\022\021\n\tdirect" +
      "ory\030\003 \001(\t\"J\n\025GlusterfsVolumeSource\022\021\n\ten" +
      "dpoints\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" +
      "\004port\030\002 \001(\01320.k8s.io.apimachinery.pkg.ut" +
      "il.intstr.IntOrString\022\014\n\004host\030\003 \001(\t\022\016\n\006s" +
      "cheme\030\004 \001(\t\0223\n\013httpHeaders\030\005 \003(\0132\036.k8s.i" +
      "o.api.core.v1.HTTPHeader\")\n\nHTTPHeader\022\014" +
      "\n\004name\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.ExecA" +
      "ction\0222\n\007httpGet\030\002 \001(\0132!.k8s.io.api.core" +
      ".v1.HTTPGetAction\0226\n\ttcpSocket\030\003 \001(\0132#.k" +
      "8s.io.api.core.v1.TCPSocketAction\"*\n\tHos" +
      "tAlias\022\n\n\002ip\030\001 \001(\t\022\021\n\thostnames\030\002 \003(\t\"$\n" +
      "\024HostPathVolumeSource\022\014\n\004path\030\001 \001(\t\"\377\001\n\021" +
      "ISCSIVolumeSource\022\024\n\014targetPortal\030\001 \001(\t\022" +
      "\013\n\003iqn\030\002 \001(\t\022\013\n\003lun\030\003 \001(\005\022\026\n\016iscsiInterf" +
      "ace\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\021chapAuthDiscover",
      "y\030\010 \001(\010\022\027\n\017chapAuthSession\030\013 \001(\010\022;\n\tsecr" +
      "etRef\030\n \001(\0132(.k8s.io.api.core.v1.LocalOb" +
      "jectReference\"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\tLifecycle" +
      "\022.\n\tpostStart\030\001 \001(\0132\033.k8s.io.api.core.v1" +
      ".Handler\022,\n\007preStop\030\002 \001(\0132\033.k8s.io.api.c" +
      "ore.v1.Handler\"\202\001\n\nLimitRange\022B\n\010metadat" +
      "a\030\001 \001(\01320.k8s.io.apimachinery.pkg.apis.m" +
      "eta.v1.ObjectMeta\0220\n\004spec\030\002 \001(\0132\".k8s.io" +
      ".api.core.v1.LimitRangeSpec\"\354\006\n\016LimitRan",
      "geItem\022\014\n\004type\030\001 \001(\t\0228\n\003max\030\002 \003(\0132+.k8s." +
      "io.api.core.v1.LimitRangeItem.MaxEntry\0228" +
      "\n\003min\030\003 \003(\0132+.k8s.io.api.core.v1.LimitRa" +
      "ngeItem.MinEntry\022@\n\007default\030\004 \003(\0132/.k8s." +
      "io.api.core.v1.LimitRangeItem.DefaultEnt" +
      "ry\022N\n\016defaultRequest\030\005 \003(\01326.k8s.io.api." +
      "core.v1.LimitRangeItem.DefaultRequestEnt" +
      "ry\022Z\n\024maxLimitRequestRatio\030\006 \003(\0132<.k8s.i" +
      "o.api.core.v1.LimitRangeItem.MaxLimitReq" +
      "uestRatioEntry\032Z\n\010MaxEntry\022\013\n\003key\030\001 \001(\t\022",
      "=\n\005value\030\002 \001(\0132..k8s.io.apimachinery.pkg" +
      ".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.apim" +
      "achinery.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.resourc" +
      "e.Quantity:\0028\001\032e\n\023DefaultRequestEntry\022\013\n" +
      "\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.apima" +
      "chinery.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.pkg" +
      ".api.resource.Quantity:\0028\001\"\201\001\n\016LimitRang" +
      "eList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimach" +
      "inery.pkg.apis.meta.v1.ListMeta\022-\n\005items" +
      "\030\002 \003(\0132\036.k8s.io.api.core.v1.LimitRange\"D" +
      "\n\016LimitRangeSpec\0222\n\006limits\030\001 \003(\0132\".k8s.i" +
      "o.api.core.v1.LimitRangeItem\"\206\001\n\004List\022@\n" +
      "\010metadata\030\001 \001(\0132..k8s.io.apimachinery.pk" +
      "g.apis.meta.v1.ListMeta\022<\n\005items\030\002 \003(\0132-" +
      ".k8s.io.apimachinery.pkg.runtime.RawExte",
      "nsion\"\231\001\n\013ListOptions\022\025\n\rlabelSelector\030\001" +
      " \001(\t\022\025\n\rfieldSelector\030\002 \001(\t\022\034\n\024includeUn" +
      "initialized\030\006 \001(\010\022\r\n\005watch\030\003 \001(\010\022\027\n\017reso" +
      "urceVersion\030\004 \001(\t\022\026\n\016timeoutSeconds\030\005 \001(" +
      "\003\"3\n\023LoadBalancerIngress\022\n\n\002ip\030\001 \001(\t\022\020\n\010" +
      "hostname\030\002 \001(\t\"N\n\022LoadBalancerStatus\0228\n\007" +
      "ingress\030\001 \003(\0132\'.k8s.io.api.core.v1.LoadB" +
      "alancerIngress\"$\n\024LocalObjectReference\022\014" +
      "\n\004name\030\001 \001(\t\"!\n\021LocalVolumeSource\022\014\n\004pat" +
      "h\030\001 \001(\t\"A\n\017NFSVolumeSource\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\tN" +
      "amespace\022B\n\010metadata\030\001 \001(\01320.k8s.io.apim" +
      "achinery.pkg.apis.meta.v1.ObjectMeta\022/\n\004" +
      "spec\030\002 \001(\0132!.k8s.io.api.core.v1.Namespac" +
      "eSpec\0223\n\006status\030\003 \001(\0132#.k8s.io.api.core." +
      "v1.NamespaceStatus\"\177\n\rNamespaceList\022@\n\010m" +
      "etadata\030\001 \001(\0132..k8s.io.apimachinery.pkg." +
      "apis.meta.v1.ListMeta\022,\n\005items\030\002 \003(\0132\035.k" +
      "8s.io.api.core.v1.Namespace\"#\n\rNamespace" +
      "Spec\022\022\n\nfinalizers\030\001 \003(\t\" \n\017NamespaceSta",
      "tus\022\r\n\005phase\030\001 \001(\t\"\246\001\n\004Node\022B\n\010metadata\030" +
      "\001 \001(\01320.k8s.io.apimachinery.pkg.apis.met" +
      "a.v1.ObjectMeta\022*\n\004spec\030\002 \001(\0132\034.k8s.io.a" +
      "pi.core.v1.NodeSpec\022.\n\006status\030\003 \001(\0132\036.k8" +
      "s.io.api.core.v1.NodeStatus\",\n\013NodeAddre" +
      "ss\022\014\n\004type\030\001 \001(\t\022\017\n\007address\030\002 \001(\t\"\316\001\n\014No" +
      "deAffinity\022X\n.requiredDuringSchedulingIg" +
      "noredDuringExecution\030\001 \001(\0132 .k8s.io.api." +
      "core.v1.NodeSelector\022d\n/preferredDuringS" +
      "chedulingIgnoredDuringExecution\030\002 \003(\0132+.",
      "k8s.io.api.core.v1.PreferredSchedulingTe" +
      "rm\"\335\001\n\rNodeCondition\022\014\n\004type\030\001 \001(\t\022\016\n\006st" +
      "atus\030\002 \001(\t\022E\n\021lastHeartbeatTime\030\003 \001(\0132*." +
      "k8s.io.apimachinery.pkg.apis.meta.v1.Tim" +
      "e\022F\n\022lastTransitionTime\030\004 \001(\0132*.k8s.io.a" +
      "pimachinery.pkg.apis.meta.v1.Time\022\016\n\006rea" +
      "son\030\005 \001(\t\022\017\n\007message\030\006 \001(\t\"R\n\023NodeDaemon" +
      "Endpoints\022;\n\017kubeletEndpoint\030\001 \001(\0132\".k8s" +
      ".io.api.core.v1.DaemonEndpoint\"u\n\010NodeLi" +
      "st\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimachine",
      "ry.pkg.apis.meta.v1.ListMeta\022\'\n\005items\030\002 " +
      "\003(\0132\030.k8s.io.api.core.v1.Node\" \n\020NodePro" +
      "xyOptions\022\014\n\004path\030\001 \001(\t\"\263\001\n\rNodeResource" +
      "s\022A\n\010capacity\030\001 \003(\0132/.k8s.io.api.core.v1" +
      ".NodeResources.CapacityEntry\032_\n\rCapacity" +
      "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\"O\n\014NodeSelector\022?\n\021nodeSelectorTer" +
      "ms\030\001 \003(\0132$.k8s.io.api.core.v1.NodeSelect" +
      "orTerm\"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" +
      "\"Y\n\020NodeSelectorTerm\022E\n\020matchExpressions" +
      "\030\001 \003(\0132+.k8s.io.api.core.v1.NodeSelector" +
      "Requirement\"\205\001\n\010NodeSpec\022\017\n\007podCIDR\030\001 \001(" +
      "\t\022\022\n\nexternalID\030\002 \001(\t\022\022\n\nproviderID\030\003 \001(" +
      "\t\022\025\n\runschedulable\030\004 \001(\010\022)\n\006taints\030\005 \003(\013" +
      "2\031.k8s.io.api.core.v1.Taint\"\320\005\n\nNodeStat" +
      "us\022>\n\010capacity\030\001 \003(\0132,.k8s.io.api.core.v" +
      "1.NodeStatus.CapacityEntry\022D\n\013allocatabl" +
      "e\030\002 \003(\0132/.k8s.io.api.core.v1.NodeStatus.",
      "AllocatableEntry\022\r\n\005phase\030\003 \001(\t\0225\n\ncondi" +
      "tions\030\004 \003(\0132!.k8s.io.api.core.v1.NodeCon" +
      "dition\0222\n\taddresses\030\005 \003(\0132\037.k8s.io.api.c" +
      "ore.v1.NodeAddress\022@\n\017daemonEndpoints\030\006 " +
      "\001(\0132\'.k8s.io.api.core.v1.NodeDaemonEndpo" +
      "ints\0224\n\010nodeInfo\030\007 \001(\0132\".k8s.io.api.core" +
      ".v1.NodeSystemInfo\0222\n\006images\030\010 \003(\0132\".k8s" +
      ".io.api.core.v1.ContainerImage\022\024\n\014volume" +
      "sInUse\030\t \003(\t\022;\n\017volumesAttached\030\n \003(\0132\"." +
      "k8s.io.api.core.v1.AttachedVolume\032_\n\rCap",
      "acityEntry\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132." +
      ".k8s.io.apimachinery.pkg.api.resource.Qu" +
      "antity:\0028\001\032b\n\020AllocatableEntry\022\013\n\003key\030\001 " +
      "\001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.apimachinery" +
      ".pkg.api.resource.Quantity:\0028\001\"\361\001\n\016NodeS" +
      "ystemInfo\022\021\n\tmachineID\030\001 \001(\t\022\022\n\nsystemUU" +
      "ID\030\002 \001(\t\022\016\n\006bootID\030\003 \001(\t\022\025\n\rkernelVersio" +
      "n\030\004 \001(\t\022\017\n\007osImage\030\005 \001(\t\022\037\n\027containerRun" +
      "timeVersion\030\006 \001(\t\022\026\n\016kubeletVersion\030\007 \001(" +
      "\t\022\030\n\020kubeProxyVersion\030\010 \001(\t\022\027\n\017operating",
      "System\030\t \001(\t\022\024\n\014architecture\030\n \001(\t\"<\n\023Ob" +
      "jectFieldSelector\022\022\n\napiVersion\030\001 \001(\t\022\021\n" +
      "\tfieldPath\030\002 \001(\t\"\350\005\n\nObjectMeta\022\014\n\004name\030" +
      "\001 \001(\t\022\024\n\014generateName\030\002 \001(\t\022\021\n\tnamespace" +
      "\030\003 \001(\t\022\020\n\010selfLink\030\004 \001(\t\022\013\n\003uid\030\005 \001(\t\022\027\n" +
      "\017resourceVersion\030\006 \001(\t\022\022\n\ngeneration\030\007 \001" +
      "(\003\022E\n\021creationTimestamp\030\010 \001(\0132*.k8s.io.a" +
      "pimachinery.pkg.apis.meta.v1.Time\022E\n\021del" +
      "etionTimestamp\030\t \001(\0132*.k8s.io.apimachine" +
      "ry.pkg.apis.meta.v1.Time\022\"\n\032deletionGrac",
      "ePeriodSeconds\030\n \001(\003\022:\n\006labels\030\013 \003(\0132*.k" +
      "8s.io.api.core.v1.ObjectMeta.LabelsEntry" +
      "\022D\n\013annotations\030\014 \003(\0132/.k8s.io.api.core." +
      "v1.ObjectMeta.AnnotationsEntry\022M\n\017ownerR" +
      "eferences\030\r \003(\01324.k8s.io.apimachinery.pk" +
      "g.apis.meta.v1.OwnerReference\022H\n\014initial" +
      "izers\030\020 \001(\01322.k8s.io.apimachinery.pkg.ap" +
      "is.meta.v1.Initializers\022\022\n\nfinalizers\030\016 " +
      "\003(\t\022\023\n\013clusterName\030\017 \001(\t\032-\n\013LabelsEntry\022" +
      "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0322\n\020Annot",
      "ationsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:" +
      "\0028\001\"\215\001\n\017ObjectReference\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\napiVersion\030\005 \001(\t\022\027\n\017resourceVersi" +
      "on\030\006 \001(\t\022\021\n\tfieldPath\030\007 \001(\t\"\312\001\n\020Persiste" +
      "ntVolume\022B\n\010metadata\030\001 \001(\01320.k8s.io.apim" +
      "achinery.pkg.apis.meta.v1.ObjectMeta\0226\n\004" +
      "spec\030\002 \001(\0132(.k8s.io.api.core.v1.Persiste" +
      "ntVolumeSpec\022:\n\006status\030\003 \001(\0132*.k8s.io.ap" +
      "i.core.v1.PersistentVolumeStatus\"\331\001\n\025Per",
      "sistentVolumeClaim\022B\n\010metadata\030\001 \001(\01320.k" +
      "8s.io.apimachinery.pkg.apis.meta.v1.Obje" +
      "ctMeta\022;\n\004spec\030\002 \001(\0132-.k8s.io.api.core.v" +
      "1.PersistentVolumeClaimSpec\022?\n\006status\030\003 " +
      "\001(\0132/.k8s.io.api.core.v1.PersistentVolum" +
      "eClaimStatus\"\227\001\n\031PersistentVolumeClaimLi" +
      "st\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimachine" +
      "ry.pkg.apis.meta.v1.ListMeta\0228\n\005items\030\002 " +
      "\003(\0132).k8s.io.api.core.v1.PersistentVolum" +
      "eClaim\"\342\001\n\031PersistentVolumeClaimSpec\022\023\n\013",
      "accessModes\030\001 \003(\t\022E\n\010selector\030\004 \001(\01323.k8" +
      "s.io.apimachinery.pkg.apis.meta.v1.Label" +
      "Selector\022;\n\tresources\030\002 \001(\0132(.k8s.io.api" +
      ".core.v1.ResourceRequirements\022\022\n\nvolumeN" +
      "ame\030\003 \001(\t\022\030\n\020storageClassName\030\005 \001(\t\"\363\001\n\033" +
      "PersistentVolumeClaimStatus\022\r\n\005phase\030\001 \001" +
      "(\t\022\023\n\013accessModes\030\002 \003(\t\022O\n\010capacity\030\003 \003(" +
      "\0132=.k8s.io.api.core.v1.PersistentVolumeC" +
      "laimStatus.CapacityEntry\032_\n\rCapacityEntr" +
      "y\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.a",
      "pimachinery.pkg.api.resource.Quantity:\0028" +
      "\001\"H\n!PersistentVolumeClaimVolumeSource\022\021" +
      "\n\tclaimName\030\001 \001(\t\022\020\n\010readOnly\030\002 \001(\010\"\215\001\n\024" +
      "PersistentVolumeList\022@\n\010metadata\030\001 \001(\0132." +
      ".k8s.io.apimachinery.pkg.apis.meta.v1.Li" +
      "stMeta\0223\n\005items\030\002 \003(\0132$.k8s.io.api.core." +
      "v1.PersistentVolume\"\261\n\n\026PersistentVolume" +
      "Source\022L\n\021gcePersistentDisk\030\001 \001(\01321.k8s." +
      "io.api.core.v1.GCEPersistentDiskVolumeSo" +
      "urce\022R\n\024awsElasticBlockStore\030\002 \001(\01324.k8s",
      ".io.api.core.v1.AWSElasticBlockStoreVolu" +
      "meSource\022:\n\010hostPath\030\003 \001(\0132(.k8s.io.api." +
      "core.v1.HostPathVolumeSource\022<\n\tglusterf" +
      "s\030\004 \001(\0132).k8s.io.api.core.v1.GlusterfsVo" +
      "lumeSource\0220\n\003nfs\030\005 \001(\0132#.k8s.io.api.cor" +
      "e.v1.NFSVolumeSource\0220\n\003rbd\030\006 \001(\0132#.k8s." +
      "io.api.core.v1.RBDVolumeSource\0224\n\005iscsi\030" +
      "\007 \001(\0132%.k8s.io.api.core.v1.ISCSIVolumeSo" +
      "urce\0226\n\006cinder\030\010 \001(\0132&.k8s.io.api.core.v" +
      "1.CinderVolumeSource\0226\n\006cephfs\030\t \001(\0132&.k",
      "8s.io.api.core.v1.CephFSVolumeSource\022.\n\002" +
      "fc\030\n \001(\0132\".k8s.io.api.core.v1.FCVolumeSo" +
      "urce\0228\n\007flocker\030\013 \001(\0132\'.k8s.io.api.core." +
      "v1.FlockerVolumeSource\0228\n\nflexVolume\030\014 \001" +
      "(\0132$.k8s.io.api.core.v1.FlexVolumeSource" +
      "\022<\n\tazureFile\030\r \001(\0132).k8s.io.api.core.v1" +
      ".AzureFileVolumeSource\022I\n\rvsphereVolume\030" +
      "\016 \001(\01322.k8s.io.api.core.v1.VsphereVirtua" +
      "lDiskVolumeSource\0228\n\007quobyte\030\017 \001(\0132\'.k8s" +
      ".io.api.core.v1.QuobyteVolumeSource\022<\n\ta",
      "zureDisk\030\020 \001(\0132).k8s.io.api.core.v1.Azur" +
      "eDiskVolumeSource\022R\n\024photonPersistentDis" +
      "k\030\021 \001(\01324.k8s.io.api.core.v1.PhotonPersi" +
      "stentDiskVolumeSource\022@\n\016portworxVolume\030" +
      "\022 \001(\0132(.k8s.io.api.core.v1.PortworxVolum" +
      "eSource\0228\n\007scaleIO\030\023 \001(\0132\'.k8s.io.api.co" +
      "re.v1.ScaleIOVolumeSource\0224\n\005local\030\024 \001(\013" +
      "2%.k8s.io.api.core.v1.LocalVolumeSource\022" +
      "F\n\tstorageos\030\025 \001(\01323.k8s.io.api.core.v1." +
      "StorageOSPersistentVolumeSource\"\232\003\n\024Pers",
      "istentVolumeSpec\022H\n\010capacity\030\001 \003(\01326.k8s" +
      ".io.api.core.v1.PersistentVolumeSpec.Cap" +
      "acityEntry\022J\n\026persistentVolumeSource\030\002 \001" +
      "(\0132*.k8s.io.api.core.v1.PersistentVolume" +
      "Source\022\023\n\013accessModes\030\003 \003(\t\0225\n\010claimRef\030" +
      "\004 \001(\0132#.k8s.io.api.core.v1.ObjectReferen" +
      "ce\022%\n\035persistentVolumeReclaimPolicy\030\005 \001(" +
      "\t\022\030\n\020storageClassName\030\006 \001(\t\032_\n\rCapacityE" +
      "ntry\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.i" +
      "o.apimachinery.pkg.api.resource.Quantity",
      ":\0028\001\"H\n\026PersistentVolumeStatus\022\r\n\005phase\030" +
      "\001 \001(\t\022\017\n\007message\030\002 \001(\t\022\016\n\006reason\030\003 \001(\t\"@" +
      "\n PhotonPersistentDiskVolumeSource\022\014\n\004pd" +
      "ID\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\"\243\001\n\003Pod\022B\n\010meta" +
      "data\030\001 \001(\01320.k8s.io.apimachinery.pkg.api" +
      "s.meta.v1.ObjectMeta\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\013PodAf" +
      "finity\022[\n.requiredDuringSchedulingIgnore" +
      "dDuringExecution\030\001 \003(\0132#.k8s.io.api.core",
      ".v1.PodAffinityTerm\022d\n/preferredDuringSc" +
      "hedulingIgnoredDuringExecution\030\002 \003(\0132+.k" +
      "8s.io.api.core.v1.WeightedPodAffinityTer" +
      "m\"\206\001\n\017PodAffinityTerm\022J\n\rlabelSelector\030\001" +
      " \001(\01323.k8s.io.apimachinery.pkg.apis.meta" +
      ".v1.LabelSelector\022\022\n\nnamespaces\030\002 \003(\t\022\023\n" +
      "\013topologyKey\030\003 \001(\t\"\324\001\n\017PodAntiAffinity\022[" +
      "\n.requiredDuringSchedulingIgnoredDuringE" +
      "xecution\030\001 \003(\0132#.k8s.io.api.core.v1.PodA" +
      "ffinityTerm\022d\n/preferredDuringScheduling",
      "IgnoredDuringExecution\030\002 \003(\0132+.k8s.io.ap" +
      "i.core.v1.WeightedPodAffinityTerm\"a\n\020Pod" +
      "AttachOptions\022\r\n\005stdin\030\001 \001(\010\022\016\n\006stdout\030\002" +
      " \001(\010\022\016\n\006stderr\030\003 \001(\010\022\013\n\003tty\030\004 \001(\010\022\021\n\tcon" +
      "tainer\030\005 \001(\t\"\330\001\n\014PodCondition\022\014\n\004type\030\001 " +
      "\001(\t\022\016\n\006status\030\002 \001(\t\022A\n\rlastProbeTime\030\003 \001" +
      "(\0132*.k8s.io.apimachinery.pkg.apis.meta.v" +
      "1.Time\022F\n\022lastTransitionTime\030\004 \001(\0132*.k8s" +
      ".io.apimachinery.pkg.apis.meta.v1.Time\022\016" +
      "\n\006reason\030\005 \001(\t\022\017\n\007message\030\006 \001(\t\"p\n\016PodEx",
      "ecOptions\022\r\n\005stdin\030\001 \001(\010\022\016\n\006stdout\030\002 \001(\010" +
      "\022\016\n\006stderr\030\003 \001(\010\022\013\n\003tty\030\004 \001(\010\022\021\n\tcontain" +
      "er\030\005 \001(\t\022\017\n\007command\030\006 \003(\t\"s\n\007PodList\022@\n\010" +
      "metadata\030\001 \001(\0132..k8s.io.apimachinery.pkg" +
      ".apis.meta.v1.ListMeta\022&\n\005items\030\002 \003(\0132\027." +
      "k8s.io.api.core.v1.Pod\"\324\001\n\rPodLogOptions" +
      "\022\021\n\tcontainer\030\001 \001(\t\022\016\n\006follow\030\002 \001(\010\022\020\n\010p" +
      "revious\030\003 \001(\010\022\024\n\014sinceSeconds\030\004 \001(\003\022=\n\ts" +
      "inceTime\030\005 \001(\0132*.k8s.io.apimachinery.pkg" +
      ".apis.meta.v1.Time\022\022\n\ntimestamps\030\006 \001(\010\022\021",
      "\n\ttailLines\030\007 \001(\003\022\022\n\nlimitBytes\030\010 \001(\003\"&\n" +
      "\025PodPortForwardOptions\022\r\n\005ports\030\001 \003(\005\"\037\n" +
      "\017PodProxyOptions\022\014\n\004path\030\001 \001(\t\"\246\001\n\022PodSe" +
      "curityContext\022:\n\016seLinuxOptions\030\001 \001(\0132\"." +
      "k8s.io.api.core.v1.SELinuxOptions\022\021\n\trun" +
      "AsUser\030\002 \001(\003\022\024\n\014runAsNonRoot\030\003 \001(\010\022\032\n\022su" +
      "pplementalGroups\030\004 \003(\003\022\017\n\007fsGroup\030\005 \001(\003\"" +
      "[\n\014PodSignature\022K\n\rpodController\030\001 \001(\01324" +
      ".k8s.io.apimachinery.pkg.apis.meta.v1.Ow" +
      "nerReference\"\264\007\n\007PodSpec\022+\n\007volumes\030\001 \003(",
      "\0132\032.k8s.io.api.core.v1.Volume\0225\n\016initCon" +
      "tainers\030\024 \003(\0132\035.k8s.io.api.core.v1.Conta" +
      "iner\0221\n\ncontainers\030\002 \003(\0132\035.k8s.io.api.co" +
      "re.v1.Container\022\025\n\rrestartPolicy\030\003 \001(\t\022%" +
      "\n\035terminationGracePeriodSeconds\030\004 \001(\003\022\035\n" +
      "\025activeDeadlineSeconds\030\005 \001(\003\022\021\n\tdnsPolic" +
      "y\030\006 \001(\t\022C\n\014nodeSelector\030\007 \003(\0132-.k8s.io.a" +
      "pi.core.v1.PodSpec.NodeSelectorEntry\022\032\n\022" +
      "serviceAccountName\030\010 \001(\t\022\026\n\016serviceAccou" +
      "nt\030\t \001(\t\022$\n\034automountServiceAccountToken",
      "\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" +
      "?\n\017securityContext\030\016 \001(\0132&.k8s.io.api.co" +
      "re.v1.PodSecurityContext\022B\n\020imagePullSec" +
      "rets\030\017 \003(\0132(.k8s.io.api.core.v1.LocalObj" +
      "ectReference\022\020\n\010hostname\030\020 \001(\t\022\021\n\tsubdom" +
      "ain\030\021 \001(\t\022.\n\010affinity\030\022 \001(\0132\034.k8s.io.api" +
      ".core.v1.Affinity\022\025\n\rschedulerName\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\021priorityCla" +
      "ssName\030\030 \001(\t\022\020\n\010priority\030\031 \001(\005\0323\n\021NodeSe" +
      "lectorEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:" +
      "\0028\001\"\345\002\n\tPodStatus\022\r\n\005phase\030\001 \001(\t\0224\n\ncond" +
      "itions\030\002 \003(\0132 .k8s.io.api.core.v1.PodCon" +
      "dition\022\017\n\007message\030\003 \001(\t\022\016\n\006reason\030\004 \001(\t\022" +
      "\016\n\006hostIP\030\005 \001(\t\022\r\n\005podIP\030\006 \001(\t\022=\n\tstartT" +
      "ime\030\007 \001(\0132*.k8s.io.apimachinery.pkg.apis" +
      ".meta.v1.Time\022B\n\025initContainerStatuses\030\n" +
      " \003(\0132#.k8s.io.api.core.v1.ContainerStatu",
      "s\022>\n\021containerStatuses\030\010 \003(\0132#.k8s.io.ap" +
      "i.core.v1.ContainerStatus\022\020\n\010qosClass\030\t " +
      "\001(\t\"\204\001\n\017PodStatusResult\022B\n\010metadata\030\001 \001(" +
      "\01320.k8s.io.apimachinery.pkg.apis.meta.v1" +
      ".ObjectMeta\022-\n\006status\030\002 \001(\0132\035.k8s.io.api" +
      ".core.v1.PodStatus\"\210\001\n\013PodTemplate\022B\n\010me" +
      "tadata\030\001 \001(\01320.k8s.io.apimachinery.pkg.a" +
      "pis.meta.v1.ObjectMeta\0225\n\010template\030\002 \001(\013" +
      "2#.k8s.io.api.core.v1.PodTemplateSpec\"\203\001" +
      "\n\017PodTemplateList\022@\n\010metadata\030\001 \001(\0132..k8",
      "s.io.apimachinery.pkg.apis.meta.v1.ListM" +
      "eta\022.\n\005items\030\002 \003(\0132\037.k8s.io.api.core.v1." +
      "PodTemplate\"\200\001\n\017PodTemplateSpec\022B\n\010metad" +
      "ata\030\001 \001(\01320.k8s.io.apimachinery.pkg.apis" +
      ".meta.v1.ObjectMeta\022)\n\004spec\030\002 \001(\0132\033.k8s." +
      "io.api.core.v1.PodSpec\"J\n\024PortworxVolume" +
      "Source\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\rPreconditions\022\013\n\003u" +
      "id\030\001 \001(\t\"\261\001\n\024PreferAvoidPodsEntry\0226\n\014pod" +
      "Signature\030\001 \001(\0132 .k8s.io.api.core.v1.Pod",
      "Signature\022@\n\014evictionTime\030\002 \001(\0132*.k8s.io" +
      ".apimachinery.pkg.apis.meta.v1.Time\022\016\n\006r" +
      "eason\030\003 \001(\t\022\017\n\007message\030\004 \001(\t\"c\n\027Preferre" +
      "dSchedulingTerm\022\016\n\006weight\030\001 \001(\005\0228\n\nprefe" +
      "rence\030\002 \001(\0132$.k8s.io.api.core.v1.NodeSel" +
      "ectorTerm\"\265\001\n\005Probe\022,\n\007handler\030\001 \001(\0132\033.k" +
      "8s.io.api.core.v1.Handler\022\033\n\023initialDela" +
      "ySeconds\030\002 \001(\005\022\026\n\016timeoutSeconds\030\003 \001(\005\022\025" +
      "\n\rperiodSeconds\030\004 \001(\005\022\030\n\020successThreshol" +
      "d\030\005 \001(\005\022\030\n\020failureThreshold\030\006 \001(\005\"c\n\025Pro",
      "jectedVolumeSource\0225\n\007sources\030\001 \003(\0132$.k8" +
      "s.io.api.core.v1.VolumeProjection\022\023\n\013def" +
      "aultMode\030\002 \001(\005\"f\n\023QuobyteVolumeSource\022\020\n" +
      "\010registry\030\001 \001(\t\022\016\n\006volume\030\002 \001(\t\022\020\n\010readO" +
      "nly\030\003 \001(\010\022\014\n\004user\030\004 \001(\t\022\r\n\005group\030\005 \001(\t\"\276" +
      "\001\n\017RBDVolumeSource\022\020\n\010monitors\030\001 \003(\t\022\r\n\005" +
      "image\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\tsecr" +
      "etRef\030\007 \001(\0132(.k8s.io.api.core.v1.LocalOb" +
      "jectReference\022\020\n\010readOnly\030\010 \001(\010\"r\n\017Range",
      "Allocation\022B\n\010metadata\030\001 \001(\01320.k8s.io.ap" +
      "imachinery.pkg.apis.meta.v1.ObjectMeta\022\r" +
      "\n\005range\030\002 \001(\t\022\014\n\004data\030\003 \001(\014\"\331\001\n\025Replicat" +
      "ionController\022B\n\010metadata\030\001 \001(\01320.k8s.io" +
      ".apimachinery.pkg.apis.meta.v1.ObjectMet" +
      "a\022;\n\004spec\030\002 \001(\0132-.k8s.io.api.core.v1.Rep" +
      "licationControllerSpec\022?\n\006status\030\003 \001(\0132/" +
      ".k8s.io.api.core.v1.ReplicationControlle" +
      "rStatus\"\247\001\n\036ReplicationControllerConditi" +
      "on\022\014\n\004type\030\001 \001(\t\022\016\n\006status\030\002 \001(\t\022F\n\022last",
      "TransitionTime\030\003 \001(\0132*.k8s.io.apimachine" +
      "ry.pkg.apis.meta.v1.Time\022\016\n\006reason\030\004 \001(\t" +
      "\022\017\n\007message\030\005 \001(\t\"\227\001\n\031ReplicationControl" +
      "lerList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apima" +
      "chinery.pkg.apis.meta.v1.ListMeta\0228\n\005ite" +
      "ms\030\002 \003(\0132).k8s.io.api.core.v1.Replicatio" +
      "nController\"\375\001\n\031ReplicationControllerSpe" +
      "c\022\020\n\010replicas\030\001 \001(\005\022\027\n\017minReadySeconds\030\004" +
      " \001(\005\022M\n\010selector\030\002 \003(\0132;.k8s.io.api.core" +
      ".v1.ReplicationControllerSpec.SelectorEn",
      "try\0225\n\010template\030\003 \001(\0132#.k8s.io.api.core." +
      "v1.PodTemplateSpec\032/\n\rSelectorEntry\022\013\n\003k" +
      "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\343\001\n\033Replicat" +
      "ionControllerStatus\022\020\n\010replicas\030\001 \001(\005\022\034\n" +
      "\024fullyLabeledReplicas\030\002 \001(\005\022\025\n\rreadyRepl" +
      "icas\030\004 \001(\005\022\031\n\021availableReplicas\030\005 \001(\005\022\032\n" +
      "\022observedGeneration\030\003 \001(\003\022F\n\nconditions\030" +
      "\006 \003(\01322.k8s.io.api.core.v1.ReplicationCo" +
      "ntrollerCondition\"\201\001\n\025ResourceFieldSelec" +
      "tor\022\025\n\rcontainerName\030\001 \001(\t\022\020\n\010resource\030\002",
      " \001(\t\022?\n\007divisor\030\003 \001(\0132..k8s.io.apimachin" +
      "ery.pkg.api.resource.Quantity\"\301\001\n\rResour" +
      "ceQuota\022B\n\010metadata\030\001 \001(\01320.k8s.io.apima" +
      "chinery.pkg.apis.meta.v1.ObjectMeta\0223\n\004s" +
      "pec\030\002 \001(\0132%.k8s.io.api.core.v1.ResourceQ" +
      "uotaSpec\0227\n\006status\030\003 \001(\0132\'.k8s.io.api.co" +
      "re.v1.ResourceQuotaStatus\"\207\001\n\021ResourceQu" +
      "otaList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apima" +
      "chinery.pkg.apis.meta.v1.ListMeta\0220\n\005ite" +
      "ms\030\002 \003(\0132!.k8s.io.api.core.v1.ResourceQu",
      "ota\"\277\001\n\021ResourceQuotaSpec\022=\n\004hard\030\001 \003(\0132" +
      "/.k8s.io.api.core.v1.ResourceQuotaSpec.H" +
      "ardEntry\022\016\n\006scopes\030\002 \003(\t\032[\n\tHardEntry\022\013\n" +
      "\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.apima" +
      "chinery.pkg.api.resource.Quantity:\0028\001\"\321\002" +
      "\n\023ResourceQuotaStatus\022?\n\004hard\030\001 \003(\01321.k8" +
      "s.io.api.core.v1.ResourceQuotaStatus.Har" +
      "dEntry\022?\n\004used\030\002 \003(\01321.k8s.io.api.core.v" +
      "1.ResourceQuotaStatus.UsedEntry\032[\n\tHardE" +
      "ntry\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.i",
      "o.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.apimachinery.pkg.api.reso" +
      "urce.Quantity:\0028\001\"\346\002\n\024ResourceRequiremen" +
      "ts\022D\n\006limits\030\001 \003(\01324.k8s.io.api.core.v1." +
      "ResourceRequirements.LimitsEntry\022H\n\010requ" +
      "ests\030\002 \003(\01326.k8s.io.api.core.v1.Resource" +
      "Requirements.RequestsEntry\032]\n\013LimitsEntr" +
      "y\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.a" +
      "pimachinery.pkg.api.resource.Quantity:\0028",
      "\001\032_\n\rRequestsEntry\022\013\n\003key\030\001 \001(\t\022=\n\005value" +
      "\030\002 \001(\0132..k8s.io.apimachinery.pkg.api.res" +
      "ource.Quantity:\0028\001\"I\n\016SELinuxOptions\022\014\n\004" +
      "user\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\"\201\002\n\023ScaleIOVolumeSource\022\017\n" +
      "\007gateway\030\001 \001(\t\022\016\n\006system\030\002 \001(\t\022;\n\tsecret" +
      "Ref\030\003 \001(\0132(.k8s.io.api.core.v1.LocalObje" +
      "ctReference\022\022\n\nsslEnabled\030\004 \001(\010\022\030\n\020prote" +
      "ctionDomain\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\"\256\002\n\006Se" +
      "cret\022B\n\010metadata\030\001 \001(\01320.k8s.io.apimachi" +
      "nery.pkg.apis.meta.v1.ObjectMeta\0222\n\004data" +
      "\030\002 \003(\0132$.k8s.io.api.core.v1.Secret.DataE" +
      "ntry\022>\n\nstringData\030\004 \003(\0132*.k8s.io.api.co" +
      "re.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:\0028\001\0321\n\017StringDataEntry\022\013\n\003key\030\001 \001(\t\022" +
      "\r\n\005value\030\002 \001(\t:\0028\001\"k\n\017SecretEnvSource\022F\n" +
      "\024localObjectReference\030\001 \001(\0132(.k8s.io.api",
      ".core.v1.LocalObjectReference\022\020\n\010optiona" +
      "l\030\002 \001(\010\"z\n\021SecretKeySelector\022F\n\024localObj" +
      "ectReference\030\001 \001(\0132(.k8s.io.api.core.v1." +
      "LocalObjectReference\022\013\n\003key\030\002 \001(\t\022\020\n\010opt" +
      "ional\030\003 \001(\010\"y\n\nSecretList\022@\n\010metadata\030\001 " +
      "\001(\0132..k8s.io.apimachinery.pkg.apis.meta." +
      "v1.ListMeta\022)\n\005items\030\002 \003(\0132\032.k8s.io.api." +
      "core.v1.Secret\"\232\001\n\020SecretProjection\022F\n\024l" +
      "ocalObjectReference\030\001 \001(\0132(.k8s.io.api.c" +
      "ore.v1.LocalObjectReference\022,\n\005items\030\002 \003",
      "(\0132\035.k8s.io.api.core.v1.KeyToPath\022\020\n\010opt" +
      "ional\030\004 \001(\010\"}\n\022SecretVolumeSource\022\022\n\nsec" +
      "retName\030\001 \001(\t\022,\n\005items\030\002 \003(\0132\035.k8s.io.ap" +
      "i.core.v1.KeyToPath\022\023\n\013defaultMode\030\003 \001(\005" +
      "\022\020\n\010optional\030\004 \001(\010\"\204\002\n\017SecurityContext\0226" +
      "\n\014capabilities\030\001 \001(\0132 .k8s.io.api.core.v" +
      "1.Capabilities\022\022\n\nprivileged\030\002 \001(\010\022:\n\016se" +
      "LinuxOptions\030\003 \001(\0132\".k8s.io.api.core.v1." +
      "SELinuxOptions\022\021\n\trunAsUser\030\004 \001(\003\022\024\n\014run" +
      "AsNonRoot\030\005 \001(\010\022\036\n\026readOnlyRootFilesyste",
      "m\030\006 \001(\010\022 \n\030allowPrivilegeEscalation\030\007 \001(" +
      "\010\"M\n\023SerializedReference\0226\n\treference\030\001 " +
      "\001(\0132#.k8s.io.api.core.v1.ObjectReference" +
      "\"\257\001\n\007Service\022B\n\010metadata\030\001 \001(\01320.k8s.io." +
      "apimachinery.pkg.apis.meta.v1.ObjectMeta" +
      "\022-\n\004spec\030\002 \001(\0132\037.k8s.io.api.core.v1.Serv" +
      "iceSpec\0221\n\006status\030\003 \001(\0132!.k8s.io.api.cor" +
      "e.v1.ServiceStatus\"\364\001\n\016ServiceAccount\022B\n" +
      "\010metadata\030\001 \001(\01320.k8s.io.apimachinery.pk" +
      "g.apis.meta.v1.ObjectMeta\0224\n\007secrets\030\002 \003",
      "(\0132#.k8s.io.api.core.v1.ObjectReference\022" +
      "B\n\020imagePullSecrets\030\003 \003(\0132(.k8s.io.api.c" +
      "ore.v1.LocalObjectReference\022$\n\034automount" +
      "ServiceAccountToken\030\004 \001(\010\"\211\001\n\022ServiceAcc" +
      "ountList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apim" +
      "achinery.pkg.apis.meta.v1.ListMeta\0221\n\005it" +
      "ems\030\002 \003(\0132\".k8s.io.api.core.v1.ServiceAc" +
      "count\"{\n\013ServiceList\022@\n\010metadata\030\001 \001(\0132." +
      ".k8s.io.apimachinery.pkg.apis.meta.v1.Li" +
      "stMeta\022*\n\005items\030\002 \003(\0132\033.k8s.io.api.core.",
      "v1.Service\"\223\001\n\013ServicePort\022\014\n\004name\030\001 \001(\t" +
      "\022\020\n\010protocol\030\002 \001(\t\022\014\n\004port\030\003 \001(\005\022D\n\ntarg" +
      "etPort\030\004 \001(\01320.k8s.io.apimachinery.pkg.u" +
      "til.intstr.IntOrString\022\020\n\010nodePort\030\005 \001(\005" +
      "\"#\n\023ServiceProxyOptions\022\014\n\004path\030\001 \001(\t\"\212\003" +
      "\n\013ServiceSpec\022.\n\005ports\030\001 \003(\0132\037.k8s.io.ap" +
      "i.core.v1.ServicePort\022?\n\010selector\030\002 \003(\0132" +
      "-.k8s.io.api.core.v1.ServiceSpec.Selecto" +
      "rEntry\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\016loadBalancerIP\030\010 \001(\t\022 \n\030loadBal" +
      "ancerSourceRanges\030\t \003(\t\022\024\n\014externalName\030" +
      "\n \001(\t\022\035\n\025externalTrafficPolicy\030\013 \001(\t\022\033\n\023" +
      "healthCheckNodePort\030\014 \001(\005\032/\n\rSelectorEnt" +
      "ry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"M\n\rSe" +
      "rviceStatus\022<\n\014loadBalancer\030\001 \001(\0132&.k8s." +
      "io.api.core.v1.LoadBalancerStatus\"\250\001\n\037St" +
      "orageOSPersistentVolumeSource\022\022\n\nvolumeN" +
      "ame\030\001 \001(\t\022\027\n\017volumeNamespace\030\002 \001(\t\022\016\n\006fs" +
      "Type\030\003 \001(\t\022\020\n\010readOnly\030\004 \001(\010\0226\n\tsecretRe",
      "f\030\005 \001(\0132#.k8s.io.api.core.v1.ObjectRefer" +
      "ence\"\243\001\n\025StorageOSVolumeSource\022\022\n\nvolume" +
      "Name\030\001 \001(\t\022\027\n\017volumeNamespace\030\002 \001(\t\022\016\n\006f" +
      "sType\030\003 \001(\t\022\020\n\010readOnly\030\004 \001(\010\022;\n\tsecretR" +
      "ef\030\005 \001(\0132(.k8s.io.api.core.v1.LocalObjec" +
      "tReference\"%\n\006Sysctl\022\014\n\004name\030\001 \001(\t\022\r\n\005va" +
      "lue\030\002 \001(\t\"_\n\017TCPSocketAction\022>\n\004port\030\001 \001" +
      "(\01320.k8s.io.apimachinery.pkg.util.intstr" +
      ".IntOrString\022\014\n\004host\030\002 \001(\t\"r\n\005Taint\022\013\n\003k" +
      "ey\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.apimachinery" +
      ".pkg.apis.meta.v1.Time\"e\n\nToleration\022\013\n\003" +
      "key\030\001 \001(\t\022\020\n\010operator\030\002 \001(\t\022\r\n\005value\030\003 \001" +
      "(\t\022\016\n\006effect\030\004 \001(\t\022\031\n\021tolerationSeconds\030" +
      "\005 \001(\003\"N\n\006Volume\022\014\n\004name\030\001 \001(\t\0226\n\014volumeS" +
      "ource\030\002 \001(\0132 .k8s.io.api.core.v1.VolumeS" +
      "ource\"Q\n\013VolumeMount\022\014\n\004name\030\001 \001(\t\022\020\n\010re" +
      "adOnly\030\002 \001(\010\022\021\n\tmountPath\030\003 \001(\t\022\017\n\007subPa" +
      "th\030\004 \001(\t\"\304\001\n\020VolumeProjection\0224\n\006secret\030" +
      "\001 \001(\0132$.k8s.io.api.core.v1.SecretProject",
      "ion\022>\n\013downwardAPI\030\002 \001(\0132).k8s.io.api.co" +
      "re.v1.DownwardAPIProjection\022:\n\tconfigMap" +
      "\030\003 \001(\0132\'.k8s.io.api.core.v1.ConfigMapPro" +
      "jection\"\251\r\n\014VolumeSource\022:\n\010hostPath\030\001 \001" +
      "(\0132(.k8s.io.api.core.v1.HostPathVolumeSo" +
      "urce\022:\n\010emptyDir\030\002 \001(\0132(.k8s.io.api.core" +
      ".v1.EmptyDirVolumeSource\022L\n\021gcePersisten" +
      "tDisk\030\003 \001(\01321.k8s.io.api.core.v1.GCEPers" +
      "istentDiskVolumeSource\022R\n\024awsElasticBloc" +
      "kStore\030\004 \001(\01324.k8s.io.api.core.v1.AWSEla",
      "sticBlockStoreVolumeSource\0228\n\007gitRepo\030\005 " +
      "\001(\0132\'.k8s.io.api.core.v1.GitRepoVolumeSo" +
      "urce\0226\n\006secret\030\006 \001(\0132&.k8s.io.api.core.v" +
      "1.SecretVolumeSource\0220\n\003nfs\030\007 \001(\0132#.k8s." +
      "io.api.core.v1.NFSVolumeSource\0224\n\005iscsi\030" +
      "\010 \001(\0132%.k8s.io.api.core.v1.ISCSIVolumeSo" +
      "urce\022<\n\tglusterfs\030\t \001(\0132).k8s.io.api.cor" +
      "e.v1.GlusterfsVolumeSource\022T\n\025persistent" +
      "VolumeClaim\030\n \001(\01325.k8s.io.api.core.v1.P" +
      "ersistentVolumeClaimVolumeSource\0220\n\003rbd\030",
      "\013 \001(\0132#.k8s.io.api.core.v1.RBDVolumeSour" +
      "ce\0228\n\nflexVolume\030\014 \001(\0132$.k8s.io.api.core" +
      ".v1.FlexVolumeSource\0226\n\006cinder\030\r \001(\0132&.k" +
      "8s.io.api.core.v1.CinderVolumeSource\0226\n\006" +
      "cephfs\030\016 \001(\0132&.k8s.io.api.core.v1.CephFS" +
      "VolumeSource\0228\n\007flocker\030\017 \001(\0132\'.k8s.io.a" +
      "pi.core.v1.FlockerVolumeSource\022@\n\013downwa" +
      "rdAPI\030\020 \001(\0132+.k8s.io.api.core.v1.Downwar" +
      "dAPIVolumeSource\022.\n\002fc\030\021 \001(\0132\".k8s.io.ap" +
      "i.core.v1.FCVolumeSource\022<\n\tazureFile\030\022 ",
      "\001(\0132).k8s.io.api.core.v1.AzureFileVolume" +
      "Source\022<\n\tconfigMap\030\023 \001(\0132).k8s.io.api.c" +
      "ore.v1.ConfigMapVolumeSource\022I\n\rvsphereV" +
      "olume\030\024 \001(\01322.k8s.io.api.core.v1.Vsphere" +
      "VirtualDiskVolumeSource\0228\n\007quobyte\030\025 \001(\013" +
      "2\'.k8s.io.api.core.v1.QuobyteVolumeSourc" +
      "e\022<\n\tazureDisk\030\026 \001(\0132).k8s.io.api.core.v" +
      "1.AzureDiskVolumeSource\022R\n\024photonPersist" +
      "entDisk\030\027 \001(\01324.k8s.io.api.core.v1.Photo" +
      "nPersistentDiskVolumeSource\022<\n\tprojected",
      "\030\032 \001(\0132).k8s.io.api.core.v1.ProjectedVol" +
      "umeSource\022@\n\016portworxVolume\030\030 \001(\0132(.k8s." +
      "io.api.core.v1.PortworxVolumeSource\0228\n\007s" +
      "caleIO\030\031 \001(\0132\'.k8s.io.api.core.v1.ScaleI" +
      "OVolumeSource\022<\n\tstorageos\030\033 \001(\0132).k8s.i" +
      "o.api.core.v1.StorageOSVolumeSource\"x\n\036V" +
      "sphereVirtualDiskVolumeSource\022\022\n\nvolumeP" +
      "ath\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\022\031\n\021storagePoli" +
      "cyName\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.api.c" +
      "ore.v1.PodAffinityTermB$\n\032io.kubernetes." +
      "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_AzureFileVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(5);
    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(6);
    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_Capabilities_descriptor =
      getDescriptor().getMessageTypes().get(7);
    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_CephFSVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(8);
    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_CinderVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(9);
    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", });
    internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor =
      getDescriptor().getMessageTypes().get(10);
    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(11);
    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(12);
    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(13);
    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", });
    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_ConfigMapEnvSource_descriptor =
      getDescriptor().getMessageTypes().get(14);
    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(15);
    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(16);
    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_ConfigMapProjection_descriptor =
      getDescriptor().getMessageTypes().get(17);
    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(18);
    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(19);
    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", "LivenessProbe", "ReadinessProbe", "Lifecycle", "TerminationMessagePath", "TerminationMessagePolicy", "ImagePullPolicy", "SecurityContext", "Stdin", "StdinOnce", "Tty", });
    internal_static_k8s_io_api_core_v1_ContainerImage_descriptor =
      getDescriptor().getMessageTypes().get(20);
    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(21);
    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(22);
    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(23);
    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(24);
    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(25);
    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(26);
    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(27);
    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_DeleteOptions_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_k8s_io_api_core_v1_DeleteOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_core_v1_DeleteOptions_descriptor,
        new java.lang.String[] { "GracePeriodSeconds", "Preconditions", "OrphanDependents", "PropagationPolicy", });
    internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor =
      getDescriptor().getMessageTypes().get(29);
    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(30);
    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(31);
    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(32);
    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(33);
    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(34);
    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(35);
    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(36);
    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(37);
    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(38);
    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(39);
    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(40);
    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(41);
    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", });
    internal_static_k8s_io_api_core_v1_EventList_descriptor =
      getDescriptor().getMessageTypes().get(42);
    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_EventSource_descriptor =
      getDescriptor().getMessageTypes().get(43);
    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(44);
    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(45);
    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", });
    internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(46);
    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(47);
    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(48);
    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(49);
    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_GlusterfsVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(50);
    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(51);
    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(52);
    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(53);
    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(54);
    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(55);
    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", });
    internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(56);
    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", });
    internal_static_k8s_io_api_core_v1_KeyToPath_descriptor =
      getDescriptor().getMessageTypes().get(57);
    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(58);
    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(59);
    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(60);
    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(61);
    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(62);
    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(63);
    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_ListOptions_descriptor =
      getDescriptor().getMessageTypes().get(64);
    internal_static_k8s_io_api_core_v1_ListOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_core_v1_ListOptions_descriptor,
        new java.lang.String[] { "LabelSelector", "FieldSelector", "IncludeUninitialized", "Watch", "ResourceVersion", "TimeoutSeconds", });
    internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor =
      getDescriptor().getMessageTypes().get(65);
    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(66);
    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(67);
    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(68);
    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", });
    internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(69);
    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(70);
    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(71);
    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(72);
    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(73);
    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(74);
    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(75);
    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(76);
    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(77);
    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_NodeDaemonEndpoints_descriptor =
      getDescriptor().getMessageTypes().get(78);
    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(79);
    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(80);
    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(81);
    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(82);
    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(83);
    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(84);
    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", });
    internal_static_k8s_io_api_core_v1_NodeSpec_descriptor =
      getDescriptor().getMessageTypes().get(85);
    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", "ExternalID", "ProviderID", "Unschedulable", "Taints", });
    internal_static_k8s_io_api_core_v1_NodeStatus_descriptor =
      getDescriptor().getMessageTypes().get(86);
    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", });
    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(87);
    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(88);
    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_ObjectMeta_descriptor =
      getDescriptor().getMessageTypes().get(89);
    internal_static_k8s_io_api_core_v1_ObjectMeta_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_core_v1_ObjectMeta_descriptor,
        new java.lang.String[] { "Name", "GenerateName", "Namespace", "SelfLink", "Uid", "ResourceVersion", "Generation", "CreationTimestamp", "DeletionTimestamp", "DeletionGracePeriodSeconds", "Labels", "Annotations", "OwnerReferences", "Initializers", "Finalizers", "ClusterName", });
    internal_static_k8s_io_api_core_v1_ObjectMeta_LabelsEntry_descriptor =
      internal_static_k8s_io_api_core_v1_ObjectMeta_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_ObjectMeta_LabelsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_core_v1_ObjectMeta_LabelsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_k8s_io_api_core_v1_ObjectMeta_AnnotationsEntry_descriptor =
      internal_static_k8s_io_api_core_v1_ObjectMeta_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_ObjectMeta_AnnotationsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_api_core_v1_ObjectMeta_AnnotationsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_k8s_io_api_core_v1_ObjectReference_descriptor =
      getDescriptor().getMessageTypes().get(90);
    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(91);
    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(92);
    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_PersistentVolumeClaimList_descriptor =
      getDescriptor().getMessageTypes().get(93);
    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(94);
    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", });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor =
      getDescriptor().getMessageTypes().get(95);
    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", });
    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(96);
    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(97);
    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(98);
    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", });
    internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor =
      getDescriptor().getMessageTypes().get(99);
    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", });
    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(100);
    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(101);
    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(102);
    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(103);
    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(104);
    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(105);
    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(106);
    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(107);
    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_PodExecOptions_descriptor =
      getDescriptor().getMessageTypes().get(108);
    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(109);
    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(110);
    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(111);
    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(112);
    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_PodSecurityContext_descriptor =
      getDescriptor().getMessageTypes().get(113);
    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", "RunAsNonRoot", "SupplementalGroups", "FsGroup", });
    internal_static_k8s_io_api_core_v1_PodSignature_descriptor =
      getDescriptor().getMessageTypes().get(114);
    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(115);
    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", "SecurityContext", "ImagePullSecrets", "Hostname", "Subdomain", "Affinity", "SchedulerName", "Tolerations", "HostAliases", "PriorityClassName", "Priority", });
    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(116);
    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", "HostIP", "PodIP", "StartTime", "InitContainerStatuses", "ContainerStatuses", "QosClass", });
    internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor =
      getDescriptor().getMessageTypes().get(117);
    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(118);
    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(119);
    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(120);
    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(121);
    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(122);
    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(123);
    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(124);
    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(125);
    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(126);
    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(127);
    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_RBDVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(128);
    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(129);
    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(130);
    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(131);
    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(132);
    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(133);
    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(134);
    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(135);
    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(136);
    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(137);
    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(138);
    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", });
    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(139);
    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(140);
    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(141);
    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_ScaleIOVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(142);
    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_Secret_descriptor =
      getDescriptor().getMessageTypes().get(143);
    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(144);
    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(145);
    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(146);
    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(147);
    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_SecretVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(148);
    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(149);
    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", "RunAsNonRoot", "ReadOnlyRootFilesystem", "AllowPrivilegeEscalation", });
    internal_static_k8s_io_api_core_v1_SerializedReference_descriptor =
      getDescriptor().getMessageTypes().get(150);
    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(151);
    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(152);
    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(153);
    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_ServiceList_descriptor =
      getDescriptor().getMessageTypes().get(154);
    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(155);
    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(156);
    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(157);
    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", });
    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(158);
    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_StorageOSPersistentVolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(159);
    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(160);
    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(161);
    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(162);
    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(163);
    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(164);
    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_Volume_descriptor =
      getDescriptor().getMessageTypes().get(165);
    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_VolumeMount_descriptor =
      getDescriptor().getMessageTypes().get(166);
    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", });
    internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor =
      getDescriptor().getMessageTypes().get(167);
    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", });
    internal_static_k8s_io_api_core_v1_VolumeSource_descriptor =
      getDescriptor().getMessageTypes().get(168);
    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(169);
    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(170);
    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)
}
