// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto

package io.kubernetes.client.proto;

public final class Meta {
  private Meta() {}
  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 APIGroupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery> 
        getVersionsList();
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getVersions(int index);
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    int getVersionsCount();
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> 
        getVersionsOrBuilderList();
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder getVersionsOrBuilder(
        int index);

    /**
     * <pre>
     * preferredVersion is the version preferred by the API server, which
     * probably is the storage version.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
     */
    boolean hasPreferredVersion();
    /**
     * <pre>
     * preferredVersion is the version preferred by the API server, which
     * probably is the storage version.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
     */
    io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getPreferredVersion();
    /**
     * <pre>
     * preferredVersion is the version preferred by the API server, which
     * probably is the storage version.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
     */
    io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder getPreferredVersionOrBuilder();

    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> 
        getServerAddressByClientCIDRsList();
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getServerAddressByClientCIDRs(int index);
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    int getServerAddressByClientCIDRsCount();
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
        getServerAddressByClientCIDRsOrBuilderList();
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder getServerAddressByClientCIDRsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * APIGroup contains the name, the supported versions, and the preferred version
   * of a group.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup}
   */
  public  static final class APIGroup extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup)
      APIGroupOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use APIGroup.newBuilder() to construct.
    private APIGroup(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private APIGroup() {
      name_ = "";
      versions_ = java.util.Collections.emptyList();
      serverAddressByClientCIDRs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private APIGroup(
        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: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                versions_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery>();
                mutable_bitField0_ |= 0x00000002;
              }
              versions_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = preferredVersion_.toBuilder();
              }
              preferredVersion_ = input.readMessage(io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(preferredVersion_);
                preferredVersion_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                serverAddressByClientCIDRs_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR>();
                mutable_bitField0_ |= 0x00000008;
              }
              serverAddressByClientCIDRs_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.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)) {
          versions_ = java.util.Collections.unmodifiableList(versions_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          serverAddressByClientCIDRs_ = java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.APIGroup.class, io.kubernetes.client.proto.Meta.APIGroup.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * name is the name of the group.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * name is the name of the group.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * name is the name of the group.
     * </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 VERSIONS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery> versions_;
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery> getVersionsList() {
      return versions_;
    }
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> 
        getVersionsOrBuilderList() {
      return versions_;
    }
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    public int getVersionsCount() {
      return versions_.size();
    }
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getVersions(int index) {
      return versions_.get(index);
    }
    /**
     * <pre>
     * versions are the versions supported in this group.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder getVersionsOrBuilder(
        int index) {
      return versions_.get(index);
    }

    public static final int PREFERREDVERSION_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.GroupVersionForDiscovery preferredVersion_;
    /**
     * <pre>
     * preferredVersion is the version preferred by the API server, which
     * probably is the storage version.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
     */
    public boolean hasPreferredVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * preferredVersion is the version preferred by the API server, which
     * probably is the storage version.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getPreferredVersion() {
      return preferredVersion_ == null ? io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance() : preferredVersion_;
    }
    /**
     * <pre>
     * preferredVersion is the version preferred by the API server, which
     * probably is the storage version.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder getPreferredVersionOrBuilder() {
      return preferredVersion_ == null ? io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance() : preferredVersion_;
    }

    public static final int SERVERADDRESSBYCLIENTCIDRS_FIELD_NUMBER = 4;
    private java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> serverAddressByClientCIDRs_;
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> getServerAddressByClientCIDRsList() {
      return serverAddressByClientCIDRs_;
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
        getServerAddressByClientCIDRsOrBuilderList() {
      return serverAddressByClientCIDRs_;
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    public int getServerAddressByClientCIDRsCount() {
      return serverAddressByClientCIDRs_.size();
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getServerAddressByClientCIDRs(int index) {
      return serverAddressByClientCIDRs_.get(index);
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder getServerAddressByClientCIDRsOrBuilder(
        int index) {
      return serverAddressByClientCIDRs_.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, name_);
      }
      for (int i = 0; i < versions_.size(); i++) {
        output.writeMessage(2, versions_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, getPreferredVersion());
      }
      for (int i = 0; i < serverAddressByClientCIDRs_.size(); i++) {
        output.writeMessage(4, serverAddressByClientCIDRs_.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, name_);
      }
      for (int i = 0; i < versions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, versions_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPreferredVersion());
      }
      for (int i = 0; i < serverAddressByClientCIDRs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, serverAddressByClientCIDRs_.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.Meta.APIGroup)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.APIGroup other = (io.kubernetes.client.proto.Meta.APIGroup) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && getVersionsList()
          .equals(other.getVersionsList());
      result = result && (hasPreferredVersion() == other.hasPreferredVersion());
      if (hasPreferredVersion()) {
        result = result && getPreferredVersion()
            .equals(other.getPreferredVersion());
      }
      result = result && getServerAddressByClientCIDRsList()
          .equals(other.getServerAddressByClientCIDRsList());
      result = result && unknownFields.equals(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 (getVersionsCount() > 0) {
        hash = (37 * hash) + VERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getVersionsList().hashCode();
      }
      if (hasPreferredVersion()) {
        hash = (37 * hash) + PREFERREDVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getPreferredVersion().hashCode();
      }
      if (getServerAddressByClientCIDRsCount() > 0) {
        hash = (37 * hash) + SERVERADDRESSBYCLIENTCIDRS_FIELD_NUMBER;
        hash = (53 * hash) + getServerAddressByClientCIDRsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIGroup 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.Meta.APIGroup 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>
     * APIGroup contains the name, the supported versions, and the preferred version
     * of a group.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup)
        io.kubernetes.client.proto.Meta.APIGroupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.APIGroup.class, io.kubernetes.client.proto.Meta.APIGroup.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getVersionsFieldBuilder();
          getPreferredVersionFieldBuilder();
          getServerAddressByClientCIDRsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (versionsBuilder_ == null) {
          versions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          versionsBuilder_.clear();
        }
        if (preferredVersionBuilder_ == null) {
          preferredVersion_ = null;
        } else {
          preferredVersionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (serverAddressByClientCIDRsBuilder_ == null) {
          serverAddressByClientCIDRs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          serverAddressByClientCIDRsBuilder_.clear();
        }
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.APIGroup getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.APIGroup.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.APIGroup buildPartial() {
        io.kubernetes.client.proto.Meta.APIGroup result = new io.kubernetes.client.proto.Meta.APIGroup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (versionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            versions_ = java.util.Collections.unmodifiableList(versions_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.versions_ = versions_;
        } else {
          result.versions_ = versionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        if (preferredVersionBuilder_ == null) {
          result.preferredVersion_ = preferredVersion_;
        } else {
          result.preferredVersion_ = preferredVersionBuilder_.build();
        }
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            serverAddressByClientCIDRs_ = java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.serverAddressByClientCIDRs_ = serverAddressByClientCIDRs_;
        } else {
          result.serverAddressByClientCIDRs_ = serverAddressByClientCIDRsBuilder_.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.Meta.APIGroup) {
          return mergeFrom((io.kubernetes.client.proto.Meta.APIGroup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.APIGroup other) {
        if (other == io.kubernetes.client.proto.Meta.APIGroup.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (versionsBuilder_ == null) {
          if (!other.versions_.isEmpty()) {
            if (versions_.isEmpty()) {
              versions_ = other.versions_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureVersionsIsMutable();
              versions_.addAll(other.versions_);
            }
            onChanged();
          }
        } else {
          if (!other.versions_.isEmpty()) {
            if (versionsBuilder_.isEmpty()) {
              versionsBuilder_.dispose();
              versionsBuilder_ = null;
              versions_ = other.versions_;
              bitField0_ = (bitField0_ & ~0x00000002);
              versionsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getVersionsFieldBuilder() : null;
            } else {
              versionsBuilder_.addAllMessages(other.versions_);
            }
          }
        }
        if (other.hasPreferredVersion()) {
          mergePreferredVersion(other.getPreferredVersion());
        }
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (!other.serverAddressByClientCIDRs_.isEmpty()) {
            if (serverAddressByClientCIDRs_.isEmpty()) {
              serverAddressByClientCIDRs_ = other.serverAddressByClientCIDRs_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureServerAddressByClientCIDRsIsMutable();
              serverAddressByClientCIDRs_.addAll(other.serverAddressByClientCIDRs_);
            }
            onChanged();
          }
        } else {
          if (!other.serverAddressByClientCIDRs_.isEmpty()) {
            if (serverAddressByClientCIDRsBuilder_.isEmpty()) {
              serverAddressByClientCIDRsBuilder_.dispose();
              serverAddressByClientCIDRsBuilder_ = null;
              serverAddressByClientCIDRs_ = other.serverAddressByClientCIDRs_;
              bitField0_ = (bitField0_ & ~0x00000008);
              serverAddressByClientCIDRsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getServerAddressByClientCIDRsFieldBuilder() : null;
            } else {
              serverAddressByClientCIDRsBuilder_.addAllMessages(other.serverAddressByClientCIDRs_);
            }
          }
        }
        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.Meta.APIGroup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.APIGroup) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * name is the name of the group.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * name is the name of the group.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * name is the name of the group.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * name is the name of the group.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * name is the name of the group.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * name is the name of the group.
       * </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.util.List<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery> versions_ =
        java.util.Collections.emptyList();
      private void ensureVersionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          versions_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery>(versions_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.GroupVersionForDiscovery, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder, io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> versionsBuilder_;

      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery> getVersionsList() {
        if (versionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(versions_);
        } else {
          return versionsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public int getVersionsCount() {
        if (versionsBuilder_ == null) {
          return versions_.size();
        } else {
          return versionsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getVersions(int index) {
        if (versionsBuilder_ == null) {
          return versions_.get(index);
        } else {
          return versionsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder setVersions(
          int index, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.set(index, value);
          onChanged();
        } else {
          versionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder setVersions(
          int index, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.set(index, builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder addVersions(io.kubernetes.client.proto.Meta.GroupVersionForDiscovery value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.add(value);
          onChanged();
        } else {
          versionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder addVersions(
          int index, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.add(index, value);
          onChanged();
        } else {
          versionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder addVersions(
          io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.add(builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder addVersions(
          int index, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.add(index, builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder addAllVersions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.GroupVersionForDiscovery> values) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, versions_);
          onChanged();
        } else {
          versionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder clearVersions() {
        if (versionsBuilder_ == null) {
          versions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          versionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public Builder removeVersions(int index) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.remove(index);
          onChanged();
        } else {
          versionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder getVersionsBuilder(
          int index) {
        return getVersionsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder getVersionsOrBuilder(
          int index) {
        if (versionsBuilder_ == null) {
          return versions_.get(index);  } else {
          return versionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> 
           getVersionsOrBuilderList() {
        if (versionsBuilder_ != null) {
          return versionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(versions_);
        }
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder addVersionsBuilder() {
        return getVersionsFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance());
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder addVersionsBuilder(
          int index) {
        return getVersionsFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance());
      }
      /**
       * <pre>
       * versions are the versions supported in this group.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery versions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder> 
           getVersionsBuilderList() {
        return getVersionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.GroupVersionForDiscovery, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder, io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> 
          getVersionsFieldBuilder() {
        if (versionsBuilder_ == null) {
          versionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.GroupVersionForDiscovery, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder, io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder>(
                  versions_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          versions_ = null;
        }
        return versionsBuilder_;
      }

      private io.kubernetes.client.proto.Meta.GroupVersionForDiscovery preferredVersion_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.GroupVersionForDiscovery, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder, io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> preferredVersionBuilder_;
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public boolean hasPreferredVersion() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getPreferredVersion() {
        if (preferredVersionBuilder_ == null) {
          return preferredVersion_ == null ? io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance() : preferredVersion_;
        } else {
          return preferredVersionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public Builder setPreferredVersion(io.kubernetes.client.proto.Meta.GroupVersionForDiscovery value) {
        if (preferredVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          preferredVersion_ = value;
          onChanged();
        } else {
          preferredVersionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public Builder setPreferredVersion(
          io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder builderForValue) {
        if (preferredVersionBuilder_ == null) {
          preferredVersion_ = builderForValue.build();
          onChanged();
        } else {
          preferredVersionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public Builder mergePreferredVersion(io.kubernetes.client.proto.Meta.GroupVersionForDiscovery value) {
        if (preferredVersionBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              preferredVersion_ != null &&
              preferredVersion_ != io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance()) {
            preferredVersion_ =
              io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.newBuilder(preferredVersion_).mergeFrom(value).buildPartial();
          } else {
            preferredVersion_ = value;
          }
          onChanged();
        } else {
          preferredVersionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public Builder clearPreferredVersion() {
        if (preferredVersionBuilder_ == null) {
          preferredVersion_ = null;
          onChanged();
        } else {
          preferredVersionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder getPreferredVersionBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPreferredVersionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder getPreferredVersionOrBuilder() {
        if (preferredVersionBuilder_ != null) {
          return preferredVersionBuilder_.getMessageOrBuilder();
        } else {
          return preferredVersion_ == null ?
              io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance() : preferredVersion_;
        }
      }
      /**
       * <pre>
       * preferredVersion is the version preferred by the API server, which
       * probably is the storage version.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery preferredVersion = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.GroupVersionForDiscovery, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder, io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder> 
          getPreferredVersionFieldBuilder() {
        if (preferredVersionBuilder_ == null) {
          preferredVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.GroupVersionForDiscovery, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder, io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder>(
                  getPreferredVersion(),
                  getParentForChildren(),
                  isClean());
          preferredVersion_ = null;
        }
        return preferredVersionBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> serverAddressByClientCIDRs_ =
        java.util.Collections.emptyList();
      private void ensureServerAddressByClientCIDRsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          serverAddressByClientCIDRs_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR>(serverAddressByClientCIDRs_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> serverAddressByClientCIDRsBuilder_;

      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> getServerAddressByClientCIDRsList() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
        } else {
          return serverAddressByClientCIDRsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public int getServerAddressByClientCIDRsCount() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return serverAddressByClientCIDRs_.size();
        } else {
          return serverAddressByClientCIDRsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getServerAddressByClientCIDRs(int index) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return serverAddressByClientCIDRs_.get(index);
        } else {
          return serverAddressByClientCIDRsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder setServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR value) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.set(index, value);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder setServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder builderForValue) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.set(index, builderForValue.build());
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder addServerAddressByClientCIDRs(io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR value) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(value);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder addServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR value) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(index, value);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder addServerAddressByClientCIDRs(
          io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder builderForValue) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(builderForValue.build());
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder addServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder builderForValue) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(index, builderForValue.build());
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder addAllServerAddressByClientCIDRs(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> values) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, serverAddressByClientCIDRs_);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder clearServerAddressByClientCIDRs() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          serverAddressByClientCIDRs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public Builder removeServerAddressByClientCIDRs(int index) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.remove(index);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder getServerAddressByClientCIDRsBuilder(
          int index) {
        return getServerAddressByClientCIDRsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder getServerAddressByClientCIDRsOrBuilder(
          int index) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return serverAddressByClientCIDRs_.get(index);  } else {
          return serverAddressByClientCIDRsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
           getServerAddressByClientCIDRsOrBuilderList() {
        if (serverAddressByClientCIDRsBuilder_ != null) {
          return serverAddressByClientCIDRsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder addServerAddressByClientCIDRsBuilder() {
        return getServerAddressByClientCIDRsFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.getDefaultInstance());
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder addServerAddressByClientCIDRsBuilder(
          int index) {
        return getServerAddressByClientCIDRsFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.getDefaultInstance());
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder> 
           getServerAddressByClientCIDRsBuilderList() {
        return getServerAddressByClientCIDRsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
          getServerAddressByClientCIDRsFieldBuilder() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          serverAddressByClientCIDRsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder>(
                  serverAddressByClientCIDRs_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          serverAddressByClientCIDRs_ = null;
        }
        return serverAddressByClientCIDRsBuilder_;
      }
      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.apimachinery.pkg.apis.meta.v1.APIGroup)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup)
    private static final io.kubernetes.client.proto.Meta.APIGroup DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.APIGroup();
    }

    public static io.kubernetes.client.proto.Meta.APIGroup getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.APIGroup getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface APIGroupListOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.APIGroup> 
        getGroupsList();
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    io.kubernetes.client.proto.Meta.APIGroup getGroups(int index);
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    int getGroupsCount();
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.APIGroupOrBuilder> 
        getGroupsOrBuilderList();
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    io.kubernetes.client.proto.Meta.APIGroupOrBuilder getGroupsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * APIGroupList is a list of APIGroup, to allow clients to discover the API at
   * /apis.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList}
   */
  public  static final class APIGroupList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList)
      APIGroupListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use APIGroupList.newBuilder() to construct.
    private APIGroupList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private APIGroupList() {
      groups_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private APIGroupList(
        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)) {
                groups_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.APIGroup>();
                mutable_bitField0_ |= 0x00000001;
              }
              groups_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.APIGroup.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)) {
          groups_ = java.util.Collections.unmodifiableList(groups_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.APIGroupList.class, io.kubernetes.client.proto.Meta.APIGroupList.Builder.class);
    }

    public static final int GROUPS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.Meta.APIGroup> groups_;
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.APIGroup> getGroupsList() {
      return groups_;
    }
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.APIGroupOrBuilder> 
        getGroupsOrBuilderList() {
      return groups_;
    }
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    public int getGroupsCount() {
      return groups_.size();
    }
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.APIGroup getGroups(int index) {
      return groups_.get(index);
    }
    /**
     * <pre>
     * groups is a list of APIGroup.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.APIGroupOrBuilder getGroupsOrBuilder(
        int index) {
      return groups_.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 < groups_.size(); i++) {
        output.writeMessage(1, groups_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < groups_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, groups_.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.Meta.APIGroupList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.APIGroupList other = (io.kubernetes.client.proto.Meta.APIGroupList) obj;

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

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

    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIGroupList 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.Meta.APIGroupList 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>
     * APIGroupList is a list of APIGroup, to allow clients to discover the API at
     * /apis.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList)
        io.kubernetes.client.proto.Meta.APIGroupListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.APIGroupList.class, io.kubernetes.client.proto.Meta.APIGroupList.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getGroupsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (groupsBuilder_ == null) {
          groups_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          groupsBuilder_.clear();
        }
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.APIGroupList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.APIGroupList.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.APIGroupList buildPartial() {
        io.kubernetes.client.proto.Meta.APIGroupList result = new io.kubernetes.client.proto.Meta.APIGroupList(this);
        int from_bitField0_ = bitField0_;
        if (groupsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            groups_ = java.util.Collections.unmodifiableList(groups_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.groups_ = groups_;
        } else {
          result.groups_ = groupsBuilder_.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.Meta.APIGroupList) {
          return mergeFrom((io.kubernetes.client.proto.Meta.APIGroupList)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.APIGroupList other) {
        if (other == io.kubernetes.client.proto.Meta.APIGroupList.getDefaultInstance()) return this;
        if (groupsBuilder_ == null) {
          if (!other.groups_.isEmpty()) {
            if (groups_.isEmpty()) {
              groups_ = other.groups_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureGroupsIsMutable();
              groups_.addAll(other.groups_);
            }
            onChanged();
          }
        } else {
          if (!other.groups_.isEmpty()) {
            if (groupsBuilder_.isEmpty()) {
              groupsBuilder_.dispose();
              groupsBuilder_ = null;
              groups_ = other.groups_;
              bitField0_ = (bitField0_ & ~0x00000001);
              groupsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getGroupsFieldBuilder() : null;
            } else {
              groupsBuilder_.addAllMessages(other.groups_);
            }
          }
        }
        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.Meta.APIGroupList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.APIGroupList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.Meta.APIGroup> groups_ =
        java.util.Collections.emptyList();
      private void ensureGroupsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          groups_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.APIGroup>(groups_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.APIGroup, io.kubernetes.client.proto.Meta.APIGroup.Builder, io.kubernetes.client.proto.Meta.APIGroupOrBuilder> groupsBuilder_;

      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.APIGroup> getGroupsList() {
        if (groupsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(groups_);
        } else {
          return groupsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public int getGroupsCount() {
        if (groupsBuilder_ == null) {
          return groups_.size();
        } else {
          return groupsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.APIGroup getGroups(int index) {
        if (groupsBuilder_ == null) {
          return groups_.get(index);
        } else {
          return groupsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder setGroups(
          int index, io.kubernetes.client.proto.Meta.APIGroup value) {
        if (groupsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGroupsIsMutable();
          groups_.set(index, value);
          onChanged();
        } else {
          groupsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder setGroups(
          int index, io.kubernetes.client.proto.Meta.APIGroup.Builder builderForValue) {
        if (groupsBuilder_ == null) {
          ensureGroupsIsMutable();
          groups_.set(index, builderForValue.build());
          onChanged();
        } else {
          groupsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder addGroups(io.kubernetes.client.proto.Meta.APIGroup value) {
        if (groupsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGroupsIsMutable();
          groups_.add(value);
          onChanged();
        } else {
          groupsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder addGroups(
          int index, io.kubernetes.client.proto.Meta.APIGroup value) {
        if (groupsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGroupsIsMutable();
          groups_.add(index, value);
          onChanged();
        } else {
          groupsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder addGroups(
          io.kubernetes.client.proto.Meta.APIGroup.Builder builderForValue) {
        if (groupsBuilder_ == null) {
          ensureGroupsIsMutable();
          groups_.add(builderForValue.build());
          onChanged();
        } else {
          groupsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder addGroups(
          int index, io.kubernetes.client.proto.Meta.APIGroup.Builder builderForValue) {
        if (groupsBuilder_ == null) {
          ensureGroupsIsMutable();
          groups_.add(index, builderForValue.build());
          onChanged();
        } else {
          groupsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder addAllGroups(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.APIGroup> values) {
        if (groupsBuilder_ == null) {
          ensureGroupsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, groups_);
          onChanged();
        } else {
          groupsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder clearGroups() {
        if (groupsBuilder_ == null) {
          groups_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          groupsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public Builder removeGroups(int index) {
        if (groupsBuilder_ == null) {
          ensureGroupsIsMutable();
          groups_.remove(index);
          onChanged();
        } else {
          groupsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.APIGroup.Builder getGroupsBuilder(
          int index) {
        return getGroupsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.APIGroupOrBuilder getGroupsOrBuilder(
          int index) {
        if (groupsBuilder_ == null) {
          return groups_.get(index);  } else {
          return groupsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.APIGroupOrBuilder> 
           getGroupsOrBuilderList() {
        if (groupsBuilder_ != null) {
          return groupsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(groups_);
        }
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.APIGroup.Builder addGroupsBuilder() {
        return getGroupsFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.APIGroup.getDefaultInstance());
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.APIGroup.Builder addGroupsBuilder(
          int index) {
        return getGroupsFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.APIGroup.getDefaultInstance());
      }
      /**
       * <pre>
       * groups is a list of APIGroup.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup groups = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.APIGroup.Builder> 
           getGroupsBuilderList() {
        return getGroupsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.APIGroup, io.kubernetes.client.proto.Meta.APIGroup.Builder, io.kubernetes.client.proto.Meta.APIGroupOrBuilder> 
          getGroupsFieldBuilder() {
        if (groupsBuilder_ == null) {
          groupsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.APIGroup, io.kubernetes.client.proto.Meta.APIGroup.Builder, io.kubernetes.client.proto.Meta.APIGroupOrBuilder>(
                  groups_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          groups_ = null;
        }
        return groupsBuilder_;
      }
      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.apimachinery.pkg.apis.meta.v1.APIGroupList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList)
    private static final io.kubernetes.client.proto.Meta.APIGroupList DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.APIGroupList();
    }

    public static io.kubernetes.client.proto.Meta.APIGroupList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.APIGroupList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface APIResourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.APIResource)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <pre>
     * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
     * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
     * from the kubectl CLI interface.
     * </pre>
     *
     * <code>optional string singularName = 6;</code>
     */
    boolean hasSingularName();
    /**
     * <pre>
     * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
     * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
     * from the kubectl CLI interface.
     * </pre>
     *
     * <code>optional string singularName = 6;</code>
     */
    java.lang.String getSingularName();
    /**
     * <pre>
     * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
     * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
     * from the kubectl CLI interface.
     * </pre>
     *
     * <code>optional string singularName = 6;</code>
     */
    com.google.protobuf.ByteString
        getSingularNameBytes();

    /**
     * <pre>
     * namespaced indicates if a resource is namespaced or not.
     * </pre>
     *
     * <code>optional bool namespaced = 2;</code>
     */
    boolean hasNamespaced();
    /**
     * <pre>
     * namespaced indicates if a resource is namespaced or not.
     * </pre>
     *
     * <code>optional bool namespaced = 2;</code>
     */
    boolean getNamespaced();

    /**
     * <pre>
     * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    boolean hasKind();
    /**
     * <pre>
     * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    java.lang.String getKind();
    /**
     * <pre>
     * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    com.google.protobuf.ByteString
        getKindBytes();

    /**
     * <pre>
     * verbs is a list of supported kube verbs (this includes get, list, watch, create,
     * update, patch, delete, deletecollection, and proxy)
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
     */
    boolean hasVerbs();
    /**
     * <pre>
     * verbs is a list of supported kube verbs (this includes get, list, watch, create,
     * update, patch, delete, deletecollection, and proxy)
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
     */
    io.kubernetes.client.proto.Meta.Verbs getVerbs();
    /**
     * <pre>
     * verbs is a list of supported kube verbs (this includes get, list, watch, create,
     * update, patch, delete, deletecollection, and proxy)
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
     */
    io.kubernetes.client.proto.Meta.VerbsOrBuilder getVerbsOrBuilder();

    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    java.util.List<java.lang.String>
        getShortNamesList();
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    int getShortNamesCount();
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    java.lang.String getShortNames(int index);
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    com.google.protobuf.ByteString
        getShortNamesBytes(int index);

    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    java.util.List<java.lang.String>
        getCategoriesList();
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    int getCategoriesCount();
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    java.lang.String getCategories(int index);
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    com.google.protobuf.ByteString
        getCategoriesBytes(int index);
  }
  /**
   * <pre>
   * APIResource specifies the name of a resource and whether it is namespaced.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIResource}
   */
  public  static final class APIResource extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIResource)
      APIResourceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use APIResource.newBuilder() to construct.
    private APIResource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private APIResource() {
      name_ = "";
      singularName_ = "";
      namespaced_ = false;
      kind_ = "";
      shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private APIResource(
        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_ |= 0x00000004;
              namespaced_ = input.readBool();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              kind_ = bs;
              break;
            }
            case 34: {
              io.kubernetes.client.proto.Meta.Verbs.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = verbs_.toBuilder();
              }
              verbs_ = input.readMessage(io.kubernetes.client.proto.Meta.Verbs.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(verbs_);
                verbs_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                shortNames_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000020;
              }
              shortNames_.add(bs);
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              singularName_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                categories_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              categories_.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)) {
          shortNames_ = shortNames_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          categories_ = categories_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.APIResource.class, io.kubernetes.client.proto.Meta.APIResource.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * name is the plural name of the resource.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * name is the plural name of the resource.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * name is the plural name of the resource.
     * </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 SINGULARNAME_FIELD_NUMBER = 6;
    private volatile java.lang.Object singularName_;
    /**
     * <pre>
     * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
     * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
     * from the kubectl CLI interface.
     * </pre>
     *
     * <code>optional string singularName = 6;</code>
     */
    public boolean hasSingularName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
     * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
     * from the kubectl CLI interface.
     * </pre>
     *
     * <code>optional string singularName = 6;</code>
     */
    public java.lang.String getSingularName() {
      java.lang.Object ref = singularName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          singularName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
     * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
     * from the kubectl CLI interface.
     * </pre>
     *
     * <code>optional string singularName = 6;</code>
     */
    public com.google.protobuf.ByteString
        getSingularNameBytes() {
      java.lang.Object ref = singularName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        singularName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAMESPACED_FIELD_NUMBER = 2;
    private boolean namespaced_;
    /**
     * <pre>
     * namespaced indicates if a resource is namespaced or not.
     * </pre>
     *
     * <code>optional bool namespaced = 2;</code>
     */
    public boolean hasNamespaced() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * namespaced indicates if a resource is namespaced or not.
     * </pre>
     *
     * <code>optional bool namespaced = 2;</code>
     */
    public boolean getNamespaced() {
      return namespaced_;
    }

    public static final int KIND_FIELD_NUMBER = 3;
    private volatile java.lang.Object kind_;
    /**
     * <pre>
     * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
     * </pre>
     *
     * <code>optional string kind = 3;</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 VERBS_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.Meta.Verbs verbs_;
    /**
     * <pre>
     * verbs is a list of supported kube verbs (this includes get, list, watch, create,
     * update, patch, delete, deletecollection, and proxy)
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
     */
    public boolean hasVerbs() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * verbs is a list of supported kube verbs (this includes get, list, watch, create,
     * update, patch, delete, deletecollection, and proxy)
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.Verbs getVerbs() {
      return verbs_ == null ? io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance() : verbs_;
    }
    /**
     * <pre>
     * verbs is a list of supported kube verbs (this includes get, list, watch, create,
     * update, patch, delete, deletecollection, and proxy)
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.VerbsOrBuilder getVerbsOrBuilder() {
      return verbs_ == null ? io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance() : verbs_;
    }

    public static final int SHORTNAMES_FIELD_NUMBER = 5;
    private com.google.protobuf.LazyStringList shortNames_;
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getShortNamesList() {
      return shortNames_;
    }
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    public int getShortNamesCount() {
      return shortNames_.size();
    }
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    public java.lang.String getShortNames(int index) {
      return shortNames_.get(index);
    }
    /**
     * <pre>
     * shortNames is a list of suggested short names of the resource.
     * </pre>
     *
     * <code>repeated string shortNames = 5;</code>
     */
    public com.google.protobuf.ByteString
        getShortNamesBytes(int index) {
      return shortNames_.getByteString(index);
    }

    public static final int CATEGORIES_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList categories_;
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getCategoriesList() {
      return categories_;
    }
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    public int getCategoriesCount() {
      return categories_.size();
    }
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    public java.lang.String getCategories(int index) {
      return categories_.get(index);
    }
    /**
     * <pre>
     * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
     * </pre>
     *
     * <code>repeated string categories = 7;</code>
     */
    public com.google.protobuf.ByteString
        getCategoriesBytes(int index) {
      return categories_.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, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(2, namespaced_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, kind_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(4, getVerbs());
      }
      for (int i = 0; i < shortNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, shortNames_.getRaw(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, singularName_);
      }
      for (int i = 0; i < categories_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categories_.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, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, namespaced_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, kind_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getVerbs());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < shortNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(shortNames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getShortNamesList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, singularName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < categories_.size(); i++) {
          dataSize += computeStringSizeNoTag(categories_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCategoriesList().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.Meta.APIResource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.APIResource other = (io.kubernetes.client.proto.Meta.APIResource) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && (hasSingularName() == other.hasSingularName());
      if (hasSingularName()) {
        result = result && getSingularName()
            .equals(other.getSingularName());
      }
      result = result && (hasNamespaced() == other.hasNamespaced());
      if (hasNamespaced()) {
        result = result && (getNamespaced()
            == other.getNamespaced());
      }
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind()
            .equals(other.getKind());
      }
      result = result && (hasVerbs() == other.hasVerbs());
      if (hasVerbs()) {
        result = result && getVerbs()
            .equals(other.getVerbs());
      }
      result = result && getShortNamesList()
          .equals(other.getShortNamesList());
      result = result && getCategoriesList()
          .equals(other.getCategoriesList());
      result = result && unknownFields.equals(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 (hasSingularName()) {
        hash = (37 * hash) + SINGULARNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSingularName().hashCode();
      }
      if (hasNamespaced()) {
        hash = (37 * hash) + NAMESPACED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getNamespaced());
      }
      if (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      if (hasVerbs()) {
        hash = (37 * hash) + VERBS_FIELD_NUMBER;
        hash = (53 * hash) + getVerbs().hashCode();
      }
      if (getShortNamesCount() > 0) {
        hash = (37 * hash) + SHORTNAMES_FIELD_NUMBER;
        hash = (53 * hash) + getShortNamesList().hashCode();
      }
      if (getCategoriesCount() > 0) {
        hash = (37 * hash) + CATEGORIES_FIELD_NUMBER;
        hash = (53 * hash) + getCategoriesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIResource 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.Meta.APIResource 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>
     * APIResource specifies the name of a resource and whether it is namespaced.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIResource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIResource)
        io.kubernetes.client.proto.Meta.APIResourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.APIResource.class, io.kubernetes.client.proto.Meta.APIResource.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getVerbsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        singularName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        namespaced_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (verbsBuilder_ == null) {
          verbs_ = null;
        } else {
          verbsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.APIResource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.APIResource.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.APIResource buildPartial() {
        io.kubernetes.client.proto.Meta.APIResource result = new io.kubernetes.client.proto.Meta.APIResource(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.singularName_ = singularName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.namespaced_ = namespaced_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.kind_ = kind_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (verbsBuilder_ == null) {
          result.verbs_ = verbs_;
        } else {
          result.verbs_ = verbsBuilder_.build();
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          shortNames_ = shortNames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.shortNames_ = shortNames_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          categories_ = categories_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.categories_ = categories_;
        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.Meta.APIResource) {
          return mergeFrom((io.kubernetes.client.proto.Meta.APIResource)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.APIResource other) {
        if (other == io.kubernetes.client.proto.Meta.APIResource.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasSingularName()) {
          bitField0_ |= 0x00000002;
          singularName_ = other.singularName_;
          onChanged();
        }
        if (other.hasNamespaced()) {
          setNamespaced(other.getNamespaced());
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000008;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasVerbs()) {
          mergeVerbs(other.getVerbs());
        }
        if (!other.shortNames_.isEmpty()) {
          if (shortNames_.isEmpty()) {
            shortNames_ = other.shortNames_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureShortNamesIsMutable();
            shortNames_.addAll(other.shortNames_);
          }
          onChanged();
        }
        if (!other.categories_.isEmpty()) {
          if (categories_.isEmpty()) {
            categories_ = other.categories_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureCategoriesIsMutable();
            categories_.addAll(other.categories_);
          }
          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.Meta.APIResource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.APIResource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * name is the plural name of the resource.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * name is the plural name of the resource.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * name is the plural name of the resource.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * name is the plural name of the resource.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * name is the plural name of the resource.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * name is the plural name of the resource.
       * </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 singularName_ = "";
      /**
       * <pre>
       * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
       * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
       * from the kubectl CLI interface.
       * </pre>
       *
       * <code>optional string singularName = 6;</code>
       */
      public boolean hasSingularName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
       * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
       * from the kubectl CLI interface.
       * </pre>
       *
       * <code>optional string singularName = 6;</code>
       */
      public java.lang.String getSingularName() {
        java.lang.Object ref = singularName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            singularName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
       * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
       * from the kubectl CLI interface.
       * </pre>
       *
       * <code>optional string singularName = 6;</code>
       */
      public com.google.protobuf.ByteString
          getSingularNameBytes() {
        java.lang.Object ref = singularName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          singularName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
       * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
       * from the kubectl CLI interface.
       * </pre>
       *
       * <code>optional string singularName = 6;</code>
       */
      public Builder setSingularName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        singularName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
       * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
       * from the kubectl CLI interface.
       * </pre>
       *
       * <code>optional string singularName = 6;</code>
       */
      public Builder clearSingularName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        singularName_ = getDefaultInstance().getSingularName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.
       * The singularName is more correct for reporting status on a single item and both singular and plural are allowed
       * from the kubectl CLI interface.
       * </pre>
       *
       * <code>optional string singularName = 6;</code>
       */
      public Builder setSingularNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        singularName_ = value;
        onChanged();
        return this;
      }

      private boolean namespaced_ ;
      /**
       * <pre>
       * namespaced indicates if a resource is namespaced or not.
       * </pre>
       *
       * <code>optional bool namespaced = 2;</code>
       */
      public boolean hasNamespaced() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * namespaced indicates if a resource is namespaced or not.
       * </pre>
       *
       * <code>optional bool namespaced = 2;</code>
       */
      public boolean getNamespaced() {
        return namespaced_;
      }
      /**
       * <pre>
       * namespaced indicates if a resource is namespaced or not.
       * </pre>
       *
       * <code>optional bool namespaced = 2;</code>
       */
      public Builder setNamespaced(boolean value) {
        bitField0_ |= 0x00000004;
        namespaced_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * namespaced indicates if a resource is namespaced or not.
       * </pre>
       *
       * <code>optional bool namespaced = 2;</code>
       */
      public Builder clearNamespaced() {
        bitField0_ = (bitField0_ & ~0x00000004);
        namespaced_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * <pre>
       * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public com.google.protobuf.ByteString
          getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        kind_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Verbs verbs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Verbs, io.kubernetes.client.proto.Meta.Verbs.Builder, io.kubernetes.client.proto.Meta.VerbsOrBuilder> verbsBuilder_;
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public boolean hasVerbs() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.Verbs getVerbs() {
        if (verbsBuilder_ == null) {
          return verbs_ == null ? io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance() : verbs_;
        } else {
          return verbsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public Builder setVerbs(io.kubernetes.client.proto.Meta.Verbs value) {
        if (verbsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          verbs_ = value;
          onChanged();
        } else {
          verbsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public Builder setVerbs(
          io.kubernetes.client.proto.Meta.Verbs.Builder builderForValue) {
        if (verbsBuilder_ == null) {
          verbs_ = builderForValue.build();
          onChanged();
        } else {
          verbsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public Builder mergeVerbs(io.kubernetes.client.proto.Meta.Verbs value) {
        if (verbsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              verbs_ != null &&
              verbs_ != io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance()) {
            verbs_ =
              io.kubernetes.client.proto.Meta.Verbs.newBuilder(verbs_).mergeFrom(value).buildPartial();
          } else {
            verbs_ = value;
          }
          onChanged();
        } else {
          verbsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public Builder clearVerbs() {
        if (verbsBuilder_ == null) {
          verbs_ = null;
          onChanged();
        } else {
          verbsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.Verbs.Builder getVerbsBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getVerbsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.VerbsOrBuilder getVerbsOrBuilder() {
        if (verbsBuilder_ != null) {
          return verbsBuilder_.getMessageOrBuilder();
        } else {
          return verbs_ == null ?
              io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance() : verbs_;
        }
      }
      /**
       * <pre>
       * verbs is a list of supported kube verbs (this includes get, list, watch, create,
       * update, patch, delete, deletecollection, and proxy)
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Verbs verbs = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Verbs, io.kubernetes.client.proto.Meta.Verbs.Builder, io.kubernetes.client.proto.Meta.VerbsOrBuilder> 
          getVerbsFieldBuilder() {
        if (verbsBuilder_ == null) {
          verbsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Verbs, io.kubernetes.client.proto.Meta.Verbs.Builder, io.kubernetes.client.proto.Meta.VerbsOrBuilder>(
                  getVerbs(),
                  getParentForChildren(),
                  isClean());
          verbs_ = null;
        }
        return verbsBuilder_;
      }

      private com.google.protobuf.LazyStringList shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureShortNamesIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          shortNames_ = new com.google.protobuf.LazyStringArrayList(shortNames_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getShortNamesList() {
        return shortNames_.getUnmodifiableView();
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public int getShortNamesCount() {
        return shortNames_.size();
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public java.lang.String getShortNames(int index) {
        return shortNames_.get(index);
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public com.google.protobuf.ByteString
          getShortNamesBytes(int index) {
        return shortNames_.getByteString(index);
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public Builder setShortNames(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShortNamesIsMutable();
        shortNames_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public Builder addShortNames(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShortNamesIsMutable();
        shortNames_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public Builder addAllShortNames(
          java.lang.Iterable<java.lang.String> values) {
        ensureShortNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, shortNames_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public Builder clearShortNames() {
        shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * shortNames is a list of suggested short names of the resource.
       * </pre>
       *
       * <code>repeated string shortNames = 5;</code>
       */
      public Builder addShortNamesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShortNamesIsMutable();
        shortNames_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCategoriesIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          categories_ = new com.google.protobuf.LazyStringArrayList(categories_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getCategoriesList() {
        return categories_.getUnmodifiableView();
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public int getCategoriesCount() {
        return categories_.size();
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public java.lang.String getCategories(int index) {
        return categories_.get(index);
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public com.google.protobuf.ByteString
          getCategoriesBytes(int index) {
        return categories_.getByteString(index);
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public Builder setCategories(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCategoriesIsMutable();
        categories_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public Builder addCategories(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCategoriesIsMutable();
        categories_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public Builder addAllCategories(
          java.lang.Iterable<java.lang.String> values) {
        ensureCategoriesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, categories_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public Builder clearCategories() {
        categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * categories is a list of the grouped resources this resource belongs to (e.g. 'all')
       * </pre>
       *
       * <code>repeated string categories = 7;</code>
       */
      public Builder addCategoriesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCategoriesIsMutable();
        categories_.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.apimachinery.pkg.apis.meta.v1.APIResource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.APIResource)
    private static final io.kubernetes.client.proto.Meta.APIResource DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.APIResource();
    }

    public static io.kubernetes.client.proto.Meta.APIResource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.APIResource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface APIResourceListOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * groupVersion is the group and version this APIResourceList is for.
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    boolean hasGroupVersion();
    /**
     * <pre>
     * groupVersion is the group and version this APIResourceList is for.
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    java.lang.String getGroupVersion();
    /**
     * <pre>
     * groupVersion is the group and version this APIResourceList is for.
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupVersionBytes();

    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.APIResource> 
        getResourcesList();
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    io.kubernetes.client.proto.Meta.APIResource getResources(int index);
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    int getResourcesCount();
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.APIResourceOrBuilder> 
        getResourcesOrBuilderList();
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    io.kubernetes.client.proto.Meta.APIResourceOrBuilder getResourcesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * APIResourceList is a list of APIResource, it is used to expose the name of the
   * resources supported in a specific group and version, and if the resource
   * is namespaced.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList}
   */
  public  static final class APIResourceList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList)
      APIResourceListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use APIResourceList.newBuilder() to construct.
    private APIResourceList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private APIResourceList() {
      groupVersion_ = "";
      resources_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private APIResourceList(
        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;
              groupVersion_ = bs;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                resources_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.APIResource>();
                mutable_bitField0_ |= 0x00000002;
              }
              resources_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.APIResource.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)) {
          resources_ = java.util.Collections.unmodifiableList(resources_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.APIResourceList.class, io.kubernetes.client.proto.Meta.APIResourceList.Builder.class);
    }

    private int bitField0_;
    public static final int GROUPVERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object groupVersion_;
    /**
     * <pre>
     * groupVersion is the group and version this APIResourceList is for.
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    public boolean hasGroupVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * groupVersion is the group and version this APIResourceList is for.
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    public java.lang.String getGroupVersion() {
      java.lang.Object ref = groupVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          groupVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * groupVersion is the group and version this APIResourceList is for.
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    public com.google.protobuf.ByteString
        getGroupVersionBytes() {
      java.lang.Object ref = groupVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        groupVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCES_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.Meta.APIResource> resources_;
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.APIResource> getResourcesList() {
      return resources_;
    }
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.APIResourceOrBuilder> 
        getResourcesOrBuilderList() {
      return resources_;
    }
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    public int getResourcesCount() {
      return resources_.size();
    }
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.APIResource getResources(int index) {
      return resources_.get(index);
    }
    /**
     * <pre>
     * resources contains the name of the resources and if they are namespaced.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.APIResourceOrBuilder getResourcesOrBuilder(
        int index) {
      return resources_.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, groupVersion_);
      }
      for (int i = 0; i < resources_.size(); i++) {
        output.writeMessage(2, resources_.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, groupVersion_);
      }
      for (int i = 0; i < resources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, resources_.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.Meta.APIResourceList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.APIResourceList other = (io.kubernetes.client.proto.Meta.APIResourceList) obj;

      boolean result = true;
      result = result && (hasGroupVersion() == other.hasGroupVersion());
      if (hasGroupVersion()) {
        result = result && getGroupVersion()
            .equals(other.getGroupVersion());
      }
      result = result && getResourcesList()
          .equals(other.getResourcesList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGroupVersion()) {
        hash = (37 * hash) + GROUPVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getGroupVersion().hashCode();
      }
      if (getResourcesCount() > 0) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResourcesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIResourceList 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.Meta.APIResourceList 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>
     * APIResourceList is a list of APIResource, it is used to expose the name of the
     * resources supported in a specific group and version, and if the resource
     * is namespaced.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList)
        io.kubernetes.client.proto.Meta.APIResourceListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.APIResourceList.class, io.kubernetes.client.proto.Meta.APIResourceList.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getResourcesFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        groupVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          resourcesBuilder_.clear();
        }
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.APIResourceList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.APIResourceList.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.APIResourceList buildPartial() {
        io.kubernetes.client.proto.Meta.APIResourceList result = new io.kubernetes.client.proto.Meta.APIResourceList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.groupVersion_ = groupVersion_;
        if (resourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            resources_ = java.util.Collections.unmodifiableList(resources_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.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.Meta.APIResourceList) {
          return mergeFrom((io.kubernetes.client.proto.Meta.APIResourceList)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.APIResourceList other) {
        if (other == io.kubernetes.client.proto.Meta.APIResourceList.getDefaultInstance()) return this;
        if (other.hasGroupVersion()) {
          bitField0_ |= 0x00000001;
          groupVersion_ = other.groupVersion_;
          onChanged();
        }
        if (resourcesBuilder_ == null) {
          if (!other.resources_.isEmpty()) {
            if (resources_.isEmpty()) {
              resources_ = other.resources_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureResourcesIsMutable();
              resources_.addAll(other.resources_);
            }
            onChanged();
          }
        } else {
          if (!other.resources_.isEmpty()) {
            if (resourcesBuilder_.isEmpty()) {
              resourcesBuilder_.dispose();
              resourcesBuilder_ = null;
              resources_ = other.resources_;
              bitField0_ = (bitField0_ & ~0x00000002);
              resourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getResourcesFieldBuilder() : null;
            } else {
              resourcesBuilder_.addAllMessages(other.resources_);
            }
          }
        }
        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.Meta.APIResourceList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.APIResourceList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object groupVersion_ = "";
      /**
       * <pre>
       * groupVersion is the group and version this APIResourceList is for.
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public boolean hasGroupVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * groupVersion is the group and version this APIResourceList is for.
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public java.lang.String getGroupVersion() {
        java.lang.Object ref = groupVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            groupVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * groupVersion is the group and version this APIResourceList is for.
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public com.google.protobuf.ByteString
          getGroupVersionBytes() {
        java.lang.Object ref = groupVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          groupVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * groupVersion is the group and version this APIResourceList is for.
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public Builder setGroupVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        groupVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * groupVersion is the group and version this APIResourceList is for.
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public Builder clearGroupVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        groupVersion_ = getDefaultInstance().getGroupVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * groupVersion is the group and version this APIResourceList is for.
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public Builder setGroupVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        groupVersion_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.Meta.APIResource> resources_ =
        java.util.Collections.emptyList();
      private void ensureResourcesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          resources_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.APIResource>(resources_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.APIResource, io.kubernetes.client.proto.Meta.APIResource.Builder, io.kubernetes.client.proto.Meta.APIResourceOrBuilder> resourcesBuilder_;

      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.APIResource> getResourcesList() {
        if (resourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(resources_);
        } else {
          return resourcesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public int getResourcesCount() {
        if (resourcesBuilder_ == null) {
          return resources_.size();
        } else {
          return resourcesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.APIResource getResources(int index) {
        if (resourcesBuilder_ == null) {
          return resources_.get(index);
        } else {
          return resourcesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder setResources(
          int index, io.kubernetes.client.proto.Meta.APIResource value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.set(index, value);
          onChanged();
        } else {
          resourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder setResources(
          int index, io.kubernetes.client.proto.Meta.APIResource.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.set(index, builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder addResources(io.kubernetes.client.proto.Meta.APIResource value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.add(value);
          onChanged();
        } else {
          resourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder addResources(
          int index, io.kubernetes.client.proto.Meta.APIResource value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.add(index, value);
          onChanged();
        } else {
          resourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder addResources(
          io.kubernetes.client.proto.Meta.APIResource.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.add(builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder addResources(
          int index, io.kubernetes.client.proto.Meta.APIResource.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.add(index, builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder addAllResources(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.APIResource> values) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, resources_);
          onChanged();
        } else {
          resourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder clearResources() {
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          resourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public Builder removeResources(int index) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.remove(index);
          onChanged();
        } else {
          resourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.APIResource.Builder getResourcesBuilder(
          int index) {
        return getResourcesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.APIResourceOrBuilder getResourcesOrBuilder(
          int index) {
        if (resourcesBuilder_ == null) {
          return resources_.get(index);  } else {
          return resourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.APIResourceOrBuilder> 
           getResourcesOrBuilderList() {
        if (resourcesBuilder_ != null) {
          return resourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(resources_);
        }
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.APIResource.Builder addResourcesBuilder() {
        return getResourcesFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.APIResource.getDefaultInstance());
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.APIResource.Builder addResourcesBuilder(
          int index) {
        return getResourcesFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.APIResource.getDefaultInstance());
      }
      /**
       * <pre>
       * resources contains the name of the resources and if they are namespaced.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.APIResource resources = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.APIResource.Builder> 
           getResourcesBuilderList() {
        return getResourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.APIResource, io.kubernetes.client.proto.Meta.APIResource.Builder, io.kubernetes.client.proto.Meta.APIResourceOrBuilder> 
          getResourcesFieldBuilder() {
        if (resourcesBuilder_ == null) {
          resourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.APIResource, io.kubernetes.client.proto.Meta.APIResource.Builder, io.kubernetes.client.proto.Meta.APIResourceOrBuilder>(
                  resources_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          resources_ = null;
        }
        return resourcesBuilder_;
      }
      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.apimachinery.pkg.apis.meta.v1.APIResourceList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList)
    private static final io.kubernetes.client.proto.Meta.APIResourceList DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.APIResourceList();
    }

    public static io.kubernetes.client.proto.Meta.APIResourceList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.APIResourceList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface APIVersionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    java.util.List<java.lang.String>
        getVersionsList();
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    int getVersionsCount();
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    java.lang.String getVersions(int index);
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    com.google.protobuf.ByteString
        getVersionsBytes(int index);

    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> 
        getServerAddressByClientCIDRsList();
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getServerAddressByClientCIDRs(int index);
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    int getServerAddressByClientCIDRsCount();
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
        getServerAddressByClientCIDRsOrBuilderList();
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder getServerAddressByClientCIDRsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * APIVersions lists the versions that are available, to allow clients to
   * discover the API at /api, which is the root path of the legacy v1 API.
   * 
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions}
   */
  public  static final class APIVersions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions)
      APIVersionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use APIVersions.newBuilder() to construct.
    private APIVersions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private APIVersions() {
      versions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      serverAddressByClientCIDRs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private APIVersions(
        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)) {
                versions_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              versions_.add(bs);
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                serverAddressByClientCIDRs_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR>();
                mutable_bitField0_ |= 0x00000002;
              }
              serverAddressByClientCIDRs_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.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)) {
          versions_ = versions_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          serverAddressByClientCIDRs_ = java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.APIVersions.class, io.kubernetes.client.proto.Meta.APIVersions.Builder.class);
    }

    public static final int VERSIONS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList versions_;
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getVersionsList() {
      return versions_;
    }
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    public int getVersionsCount() {
      return versions_.size();
    }
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    public java.lang.String getVersions(int index) {
      return versions_.get(index);
    }
    /**
     * <pre>
     * versions are the api versions that are available.
     * </pre>
     *
     * <code>repeated string versions = 1;</code>
     */
    public com.google.protobuf.ByteString
        getVersionsBytes(int index) {
      return versions_.getByteString(index);
    }

    public static final int SERVERADDRESSBYCLIENTCIDRS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> serverAddressByClientCIDRs_;
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> getServerAddressByClientCIDRsList() {
      return serverAddressByClientCIDRs_;
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
        getServerAddressByClientCIDRsOrBuilderList() {
      return serverAddressByClientCIDRs_;
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    public int getServerAddressByClientCIDRsCount() {
      return serverAddressByClientCIDRs_.size();
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getServerAddressByClientCIDRs(int index) {
      return serverAddressByClientCIDRs_.get(index);
    }
    /**
     * <pre>
     * a map of client CIDR to server address that is serving this group.
     * This is to help clients reach servers in the most network-efficient way possible.
     * Clients can use the appropriate server address as per the CIDR that they match.
     * In case of multiple matches, clients should use the longest matching CIDR.
     * The server returns only those CIDRs that it thinks that the client can match.
     * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
     * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder getServerAddressByClientCIDRsOrBuilder(
        int index) {
      return serverAddressByClientCIDRs_.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 < versions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, versions_.getRaw(i));
      }
      for (int i = 0; i < serverAddressByClientCIDRs_.size(); i++) {
        output.writeMessage(2, serverAddressByClientCIDRs_.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 < versions_.size(); i++) {
          dataSize += computeStringSizeNoTag(versions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getVersionsList().size();
      }
      for (int i = 0; i < serverAddressByClientCIDRs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, serverAddressByClientCIDRs_.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.Meta.APIVersions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.APIVersions other = (io.kubernetes.client.proto.Meta.APIVersions) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getVersionsCount() > 0) {
        hash = (37 * hash) + VERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getVersionsList().hashCode();
      }
      if (getServerAddressByClientCIDRsCount() > 0) {
        hash = (37 * hash) + SERVERADDRESSBYCLIENTCIDRS_FIELD_NUMBER;
        hash = (53 * hash) + getServerAddressByClientCIDRsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.APIVersions 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.Meta.APIVersions 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>
     * APIVersions lists the versions that are available, to allow clients to
     * discover the API at /api, which is the root path of the legacy v1 API.
     * 
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions)
        io.kubernetes.client.proto.Meta.APIVersionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.APIVersions.class, io.kubernetes.client.proto.Meta.APIVersions.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getServerAddressByClientCIDRsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        versions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (serverAddressByClientCIDRsBuilder_ == null) {
          serverAddressByClientCIDRs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          serverAddressByClientCIDRsBuilder_.clear();
        }
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.APIVersions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.APIVersions.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.APIVersions buildPartial() {
        io.kubernetes.client.proto.Meta.APIVersions result = new io.kubernetes.client.proto.Meta.APIVersions(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          versions_ = versions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.versions_ = versions_;
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            serverAddressByClientCIDRs_ = java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.serverAddressByClientCIDRs_ = serverAddressByClientCIDRs_;
        } else {
          result.serverAddressByClientCIDRs_ = serverAddressByClientCIDRsBuilder_.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.Meta.APIVersions) {
          return mergeFrom((io.kubernetes.client.proto.Meta.APIVersions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.APIVersions other) {
        if (other == io.kubernetes.client.proto.Meta.APIVersions.getDefaultInstance()) return this;
        if (!other.versions_.isEmpty()) {
          if (versions_.isEmpty()) {
            versions_ = other.versions_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureVersionsIsMutable();
            versions_.addAll(other.versions_);
          }
          onChanged();
        }
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (!other.serverAddressByClientCIDRs_.isEmpty()) {
            if (serverAddressByClientCIDRs_.isEmpty()) {
              serverAddressByClientCIDRs_ = other.serverAddressByClientCIDRs_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureServerAddressByClientCIDRsIsMutable();
              serverAddressByClientCIDRs_.addAll(other.serverAddressByClientCIDRs_);
            }
            onChanged();
          }
        } else {
          if (!other.serverAddressByClientCIDRs_.isEmpty()) {
            if (serverAddressByClientCIDRsBuilder_.isEmpty()) {
              serverAddressByClientCIDRsBuilder_.dispose();
              serverAddressByClientCIDRsBuilder_ = null;
              serverAddressByClientCIDRs_ = other.serverAddressByClientCIDRs_;
              bitField0_ = (bitField0_ & ~0x00000002);
              serverAddressByClientCIDRsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getServerAddressByClientCIDRsFieldBuilder() : null;
            } else {
              serverAddressByClientCIDRsBuilder_.addAllMessages(other.serverAddressByClientCIDRs_);
            }
          }
        }
        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.Meta.APIVersions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.APIVersions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList versions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureVersionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          versions_ = new com.google.protobuf.LazyStringArrayList(versions_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getVersionsList() {
        return versions_.getUnmodifiableView();
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public int getVersionsCount() {
        return versions_.size();
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public java.lang.String getVersions(int index) {
        return versions_.get(index);
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public com.google.protobuf.ByteString
          getVersionsBytes(int index) {
        return versions_.getByteString(index);
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public Builder setVersions(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureVersionsIsMutable();
        versions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public Builder addVersions(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureVersionsIsMutable();
        versions_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public Builder addAllVersions(
          java.lang.Iterable<java.lang.String> values) {
        ensureVersionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, versions_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public Builder clearVersions() {
        versions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * versions are the api versions that are available.
       * </pre>
       *
       * <code>repeated string versions = 1;</code>
       */
      public Builder addVersionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureVersionsIsMutable();
        versions_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> serverAddressByClientCIDRs_ =
        java.util.Collections.emptyList();
      private void ensureServerAddressByClientCIDRsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          serverAddressByClientCIDRs_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR>(serverAddressByClientCIDRs_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> serverAddressByClientCIDRsBuilder_;

      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> getServerAddressByClientCIDRsList() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
        } else {
          return serverAddressByClientCIDRsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public int getServerAddressByClientCIDRsCount() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return serverAddressByClientCIDRs_.size();
        } else {
          return serverAddressByClientCIDRsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getServerAddressByClientCIDRs(int index) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return serverAddressByClientCIDRs_.get(index);
        } else {
          return serverAddressByClientCIDRsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder setServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR value) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.set(index, value);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder setServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder builderForValue) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.set(index, builderForValue.build());
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder addServerAddressByClientCIDRs(io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR value) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(value);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder addServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR value) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(index, value);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder addServerAddressByClientCIDRs(
          io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder builderForValue) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(builderForValue.build());
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder addServerAddressByClientCIDRs(
          int index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder builderForValue) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.add(index, builderForValue.build());
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder addAllServerAddressByClientCIDRs(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR> values) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, serverAddressByClientCIDRs_);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder clearServerAddressByClientCIDRs() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          serverAddressByClientCIDRs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public Builder removeServerAddressByClientCIDRs(int index) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          ensureServerAddressByClientCIDRsIsMutable();
          serverAddressByClientCIDRs_.remove(index);
          onChanged();
        } else {
          serverAddressByClientCIDRsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder getServerAddressByClientCIDRsBuilder(
          int index) {
        return getServerAddressByClientCIDRsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder getServerAddressByClientCIDRsOrBuilder(
          int index) {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          return serverAddressByClientCIDRs_.get(index);  } else {
          return serverAddressByClientCIDRsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
           getServerAddressByClientCIDRsOrBuilderList() {
        if (serverAddressByClientCIDRsBuilder_ != null) {
          return serverAddressByClientCIDRsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(serverAddressByClientCIDRs_);
        }
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder addServerAddressByClientCIDRsBuilder() {
        return getServerAddressByClientCIDRsFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.getDefaultInstance());
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder addServerAddressByClientCIDRsBuilder(
          int index) {
        return getServerAddressByClientCIDRsFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.getDefaultInstance());
      }
      /**
       * <pre>
       * a map of client CIDR to server address that is serving this group.
       * This is to help clients reach servers in the most network-efficient way possible.
       * Clients can use the appropriate server address as per the CIDR that they match.
       * In case of multiple matches, clients should use the longest matching CIDR.
       * The server returns only those CIDRs that it thinks that the client can match.
       * For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.
       * Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder> 
           getServerAddressByClientCIDRsBuilderList() {
        return getServerAddressByClientCIDRsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder> 
          getServerAddressByClientCIDRsFieldBuilder() {
        if (serverAddressByClientCIDRsBuilder_ == null) {
          serverAddressByClientCIDRsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder>(
                  serverAddressByClientCIDRs_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          serverAddressByClientCIDRs_ = null;
        }
        return serverAddressByClientCIDRsBuilder_;
      }
      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.apimachinery.pkg.apis.meta.v1.APIVersions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions)
    private static final io.kubernetes.client.proto.Meta.APIVersions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.APIVersions();
    }

    public static io.kubernetes.client.proto.Meta.APIVersions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.APIVersions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.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.apimachinery.pkg.apis.meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
     */
    io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
     */
    io.kubernetes.client.proto.Meta.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.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions}
   */
  public  static final class DeleteOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.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.Meta.Preconditions.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = preconditions_.toBuilder();
              }
              preconditions_ = input.readMessage(io.kubernetes.client.proto.Meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.DeleteOptions.class, io.kubernetes.client.proto.Meta.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.Meta.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.apimachinery.pkg.apis.meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.Preconditions getPreconditions() {
      return preconditions_ == null ? io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.PreconditionsOrBuilder getPreconditionsOrBuilder() {
      return preconditions_ == null ? io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.DeleteOptions other = (io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.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.Meta.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.Meta.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.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions)
        io.kubernetes.client.proto.Meta.DeleteOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_descriptor;
      }

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

      // Construct using io.kubernetes.client.proto.Meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_descriptor;
      }

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

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

      public io.kubernetes.client.proto.Meta.DeleteOptions buildPartial() {
        io.kubernetes.client.proto.Meta.DeleteOptions result = new io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions) {
          return mergeFrom((io.kubernetes.client.proto.Meta.DeleteOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.DeleteOptions other) {
        if (other == io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.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.Meta.Preconditions preconditions_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Preconditions, io.kubernetes.client.proto.Meta.Preconditions.Builder, io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.Preconditions getPreconditions() {
        if (preconditionsBuilder_ == null) {
          return preconditions_ == null ? io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      public Builder setPreconditions(io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      public Builder setPreconditions(
          io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      public Builder mergePreconditions(io.kubernetes.client.proto.Meta.Preconditions value) {
        if (preconditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              preconditions_ != null &&
              preconditions_ != io.kubernetes.client.proto.Meta.Preconditions.getDefaultInstance()) {
            preconditions_ =
              io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.PreconditionsOrBuilder getPreconditionsOrBuilder() {
        if (preconditionsBuilder_ != null) {
          return preconditionsBuilder_.getMessageOrBuilder();
        } else {
          return preconditions_ == null ?
              io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions preconditions = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Preconditions, io.kubernetes.client.proto.Meta.Preconditions.Builder, io.kubernetes.client.proto.Meta.PreconditionsOrBuilder> 
          getPreconditionsFieldBuilder() {
        if (preconditionsBuilder_ == null) {
          preconditionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Preconditions, io.kubernetes.client.proto.Meta.Preconditions.Builder, io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.DeleteOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions)
    private static final io.kubernetes.client.proto.Meta.DeleteOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.DeleteOptions();
    }

    public static io.kubernetes.client.proto.Meta.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.Meta.DeleteOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DurationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Duration)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int64 duration = 1;</code>
     */
    boolean hasDuration();
    /**
     * <code>optional int64 duration = 1;</code>
     */
    long getDuration();
  }
  /**
   * <pre>
   * Duration is a wrapper around time.Duration which supports correct
   * marshaling to YAML and JSON. In particular, it marshals into strings, which
   * can be used as map keys in json.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Duration}
   */
  public  static final class Duration extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Duration)
      DurationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Duration.newBuilder() to construct.
    private Duration(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Duration() {
      duration_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Duration(
        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;
              duration_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Duration.class, io.kubernetes.client.proto.Meta.Duration.Builder.class);
    }

    private int bitField0_;
    public static final int DURATION_FIELD_NUMBER = 1;
    private long duration_;
    /**
     * <code>optional int64 duration = 1;</code>
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int64 duration = 1;</code>
     */
    public long getDuration() {
      return duration_;
    }

    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, duration_);
      }
      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, duration_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasDuration() == other.hasDuration());
      if (hasDuration()) {
        result = result && (getDuration()
            == other.getDuration());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDuration()) {
        hash = (37 * hash) + DURATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDuration());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Duration parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Duration 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.Meta.Duration 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>
     * Duration is a wrapper around time.Duration which supports correct
     * marshaling to YAML and JSON. In particular, it marshals into strings, which
     * can be used as map keys in json.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Duration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Duration)
        io.kubernetes.client.proto.Meta.DurationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Duration.class, io.kubernetes.client.proto.Meta.Duration.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.Duration.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();
        duration_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.Duration getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Duration.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Duration buildPartial() {
        io.kubernetes.client.proto.Meta.Duration result = new io.kubernetes.client.proto.Meta.Duration(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.duration_ = duration_;
        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.Meta.Duration) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Duration)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Duration other) {
        if (other == io.kubernetes.client.proto.Meta.Duration.getDefaultInstance()) return this;
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        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.Meta.Duration parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Duration) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long duration_ ;
      /**
       * <code>optional int64 duration = 1;</code>
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 duration = 1;</code>
       */
      public long getDuration() {
        return duration_;
      }
      /**
       * <code>optional int64 duration = 1;</code>
       */
      public Builder setDuration(long value) {
        bitField0_ |= 0x00000001;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 duration = 1;</code>
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 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.apimachinery.pkg.apis.meta.v1.Duration)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Duration)
    private static final io.kubernetes.client.proto.Meta.Duration DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Duration();
    }

    public static io.kubernetes.client.proto.Meta.Duration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Duration getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExportOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Should this value be exported.  Export strips fields that a user can not specify.
     * </pre>
     *
     * <code>optional bool export = 1;</code>
     */
    boolean hasExport();
    /**
     * <pre>
     * Should this value be exported.  Export strips fields that a user can not specify.
     * </pre>
     *
     * <code>optional bool export = 1;</code>
     */
    boolean getExport();

    /**
     * <pre>
     * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
     * </pre>
     *
     * <code>optional bool exact = 2;</code>
     */
    boolean hasExact();
    /**
     * <pre>
     * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
     * </pre>
     *
     * <code>optional bool exact = 2;</code>
     */
    boolean getExact();
  }
  /**
   * <pre>
   * ExportOptions is the query options to the standard REST get call.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions}
   */
  public  static final class ExportOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions)
      ExportOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExportOptions.newBuilder() to construct.
    private ExportOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExportOptions() {
      export_ = false;
      exact_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExportOptions(
        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;
              export_ = input.readBool();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              exact_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.ExportOptions.class, io.kubernetes.client.proto.Meta.ExportOptions.Builder.class);
    }

    private int bitField0_;
    public static final int EXPORT_FIELD_NUMBER = 1;
    private boolean export_;
    /**
     * <pre>
     * Should this value be exported.  Export strips fields that a user can not specify.
     * </pre>
     *
     * <code>optional bool export = 1;</code>
     */
    public boolean hasExport() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Should this value be exported.  Export strips fields that a user can not specify.
     * </pre>
     *
     * <code>optional bool export = 1;</code>
     */
    public boolean getExport() {
      return export_;
    }

    public static final int EXACT_FIELD_NUMBER = 2;
    private boolean exact_;
    /**
     * <pre>
     * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
     * </pre>
     *
     * <code>optional bool exact = 2;</code>
     */
    public boolean hasExact() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
     * </pre>
     *
     * <code>optional bool exact = 2;</code>
     */
    public boolean getExact() {
      return exact_;
    }

    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, export_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, exact_);
      }
      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, export_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, exact_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasExport() == other.hasExport());
      if (hasExport()) {
        result = result && (getExport()
            == other.getExport());
      }
      result = result && (hasExact() == other.hasExact());
      if (hasExact()) {
        result = result && (getExact()
            == other.getExact());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasExport()) {
        hash = (37 * hash) + EXPORT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getExport());
      }
      if (hasExact()) {
        hash = (37 * hash) + EXACT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getExact());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ExportOptions 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.Meta.ExportOptions 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>
     * ExportOptions is the query options to the standard REST get call.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions)
        io.kubernetes.client.proto.Meta.ExportOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.ExportOptions.class, io.kubernetes.client.proto.Meta.ExportOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.ExportOptions.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();
        export_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        exact_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.ExportOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.ExportOptions.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.ExportOptions buildPartial() {
        io.kubernetes.client.proto.Meta.ExportOptions result = new io.kubernetes.client.proto.Meta.ExportOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.export_ = export_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.exact_ = exact_;
        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.Meta.ExportOptions) {
          return mergeFrom((io.kubernetes.client.proto.Meta.ExportOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.ExportOptions other) {
        if (other == io.kubernetes.client.proto.Meta.ExportOptions.getDefaultInstance()) return this;
        if (other.hasExport()) {
          setExport(other.getExport());
        }
        if (other.hasExact()) {
          setExact(other.getExact());
        }
        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.Meta.ExportOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.ExportOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean export_ ;
      /**
       * <pre>
       * Should this value be exported.  Export strips fields that a user can not specify.
       * </pre>
       *
       * <code>optional bool export = 1;</code>
       */
      public boolean hasExport() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Should this value be exported.  Export strips fields that a user can not specify.
       * </pre>
       *
       * <code>optional bool export = 1;</code>
       */
      public boolean getExport() {
        return export_;
      }
      /**
       * <pre>
       * Should this value be exported.  Export strips fields that a user can not specify.
       * </pre>
       *
       * <code>optional bool export = 1;</code>
       */
      public Builder setExport(boolean value) {
        bitField0_ |= 0x00000001;
        export_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Should this value be exported.  Export strips fields that a user can not specify.
       * </pre>
       *
       * <code>optional bool export = 1;</code>
       */
      public Builder clearExport() {
        bitField0_ = (bitField0_ & ~0x00000001);
        export_ = false;
        onChanged();
        return this;
      }

      private boolean exact_ ;
      /**
       * <pre>
       * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
       * </pre>
       *
       * <code>optional bool exact = 2;</code>
       */
      public boolean hasExact() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
       * </pre>
       *
       * <code>optional bool exact = 2;</code>
       */
      public boolean getExact() {
        return exact_;
      }
      /**
       * <pre>
       * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
       * </pre>
       *
       * <code>optional bool exact = 2;</code>
       */
      public Builder setExact(boolean value) {
        bitField0_ |= 0x00000002;
        exact_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.
       * </pre>
       *
       * <code>optional bool exact = 2;</code>
       */
      public Builder clearExact() {
        bitField0_ = (bitField0_ & ~0x00000002);
        exact_ = 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.apimachinery.pkg.apis.meta.v1.ExportOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions)
    private static final io.kubernetes.client.proto.Meta.ExportOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.ExportOptions();
    }

    public static io.kubernetes.client.proto.Meta.ExportOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.ExportOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * When specified:
     * - 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.
     * </pre>
     *
     * <code>optional string resourceVersion = 1;</code>
     */
    boolean hasResourceVersion();
    /**
     * <pre>
     * When specified:
     * - 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.
     * </pre>
     *
     * <code>optional string resourceVersion = 1;</code>
     */
    java.lang.String getResourceVersion();
    /**
     * <pre>
     * When specified:
     * - 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.
     * </pre>
     *
     * <code>optional string resourceVersion = 1;</code>
     */
    com.google.protobuf.ByteString
        getResourceVersionBytes();

    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 2;</code>
     */
    boolean hasIncludeUninitialized();
    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 2;</code>
     */
    boolean getIncludeUninitialized();
  }
  /**
   * <pre>
   * GetOptions is the standard query options to the standard REST get call.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions}
   */
  public  static final class GetOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions)
      GetOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetOptions.newBuilder() to construct.
    private GetOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetOptions() {
      resourceVersion_ = "";
      includeUninitialized_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetOptions(
        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;
              resourceVersion_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GetOptions.class, io.kubernetes.client.proto.Meta.GetOptions.Builder.class);
    }

    private int bitField0_;
    public static final int RESOURCEVERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object resourceVersion_;
    /**
     * <pre>
     * When specified:
     * - 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.
     * </pre>
     *
     * <code>optional string resourceVersion = 1;</code>
     */
    public boolean hasResourceVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * When specified:
     * - 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.
     * </pre>
     *
     * <code>optional string resourceVersion = 1;</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:
     * - 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.
     * </pre>
     *
     * <code>optional string resourceVersion = 1;</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 INCLUDEUNINITIALIZED_FIELD_NUMBER = 2;
    private boolean includeUninitialized_;
    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 2;</code>
     */
    public boolean hasIncludeUninitialized() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * If true, partially initialized resources are included in the response.
     * +optional
     * </pre>
     *
     * <code>optional bool includeUninitialized = 2;</code>
     */
    public boolean getIncludeUninitialized() {
      return includeUninitialized_;
    }

    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, resourceVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, 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, resourceVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, 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.Meta.GetOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.GetOptions other = (io.kubernetes.client.proto.Meta.GetOptions) obj;

      boolean result = true;
      result = result && (hasResourceVersion() == other.hasResourceVersion());
      if (hasResourceVersion()) {
        result = result && getResourceVersion()
            .equals(other.getResourceVersion());
      }
      result = result && (hasIncludeUninitialized() == other.hasIncludeUninitialized());
      if (hasIncludeUninitialized()) {
        result = result && (getIncludeUninitialized()
            == other.getIncludeUninitialized());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasResourceVersion()) {
        hash = (37 * hash) + RESOURCEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getResourceVersion().hashCode();
      }
      if (hasIncludeUninitialized()) {
        hash = (37 * hash) + INCLUDEUNINITIALIZED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIncludeUninitialized());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GetOptions 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.Meta.GetOptions 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>
     * GetOptions is the standard query options to the standard REST get call.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions)
        io.kubernetes.client.proto.Meta.GetOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GetOptions.class, io.kubernetes.client.proto.Meta.GetOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GetOptions.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();
        resourceVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        includeUninitialized_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GetOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GetOptions.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GetOptions buildPartial() {
        io.kubernetes.client.proto.Meta.GetOptions result = new io.kubernetes.client.proto.Meta.GetOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.resourceVersion_ = resourceVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.includeUninitialized_ = includeUninitialized_;
        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.Meta.GetOptions) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GetOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GetOptions other) {
        if (other == io.kubernetes.client.proto.Meta.GetOptions.getDefaultInstance()) return this;
        if (other.hasResourceVersion()) {
          bitField0_ |= 0x00000001;
          resourceVersion_ = other.resourceVersion_;
          onChanged();
        }
        if (other.hasIncludeUninitialized()) {
          setIncludeUninitialized(other.getIncludeUninitialized());
        }
        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.Meta.GetOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GetOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object resourceVersion_ = "";
      /**
       * <pre>
       * When specified:
       * - 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.
       * </pre>
       *
       * <code>optional string resourceVersion = 1;</code>
       */
      public boolean hasResourceVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * When specified:
       * - 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.
       * </pre>
       *
       * <code>optional string resourceVersion = 1;</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:
       * - 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.
       * </pre>
       *
       * <code>optional string resourceVersion = 1;</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:
       * - 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.
       * </pre>
       *
       * <code>optional string resourceVersion = 1;</code>
       */
      public Builder setResourceVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        resourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When specified:
       * - 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.
       * </pre>
       *
       * <code>optional string resourceVersion = 1;</code>
       */
      public Builder clearResourceVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        resourceVersion_ = getDefaultInstance().getResourceVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When specified:
       * - 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.
       * </pre>
       *
       * <code>optional string resourceVersion = 1;</code>
       */
      public Builder setResourceVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        resourceVersion_ = value;
        onChanged();
        return this;
      }

      private boolean includeUninitialized_ ;
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 2;</code>
       */
      public boolean hasIncludeUninitialized() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 2;</code>
       */
      public boolean getIncludeUninitialized() {
        return includeUninitialized_;
      }
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 2;</code>
       */
      public Builder setIncludeUninitialized(boolean value) {
        bitField0_ |= 0x00000002;
        includeUninitialized_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If true, partially initialized resources are included in the response.
       * +optional
       * </pre>
       *
       * <code>optional bool includeUninitialized = 2;</code>
       */
      public Builder clearIncludeUninitialized() {
        bitField0_ = (bitField0_ & ~0x00000002);
        includeUninitialized_ = 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.apimachinery.pkg.apis.meta.v1.GetOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions)
    private static final io.kubernetes.client.proto.Meta.GetOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GetOptions();
    }

    public static io.kubernetes.client.proto.Meta.GetOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GetOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GroupKindOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string group = 1;</code>
     */
    boolean hasGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    java.lang.String getGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupBytes();

    /**
     * <code>optional string kind = 2;</code>
     */
    boolean hasKind();
    /**
     * <code>optional string kind = 2;</code>
     */
    java.lang.String getKind();
    /**
     * <code>optional string kind = 2;</code>
     */
    com.google.protobuf.ByteString
        getKindBytes();
  }
  /**
   * <pre>
   * GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying
   * concepts during lookup stages without having partially valid types
   * 
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind}
   */
  public  static final class GroupKind extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind)
      GroupKindOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GroupKind.newBuilder() to construct.
    private GroupKind(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GroupKind() {
      group_ = "";
      kind_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GroupKind(
        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;
              group_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GroupKind.class, io.kubernetes.client.proto.Meta.GroupKind.Builder.class);
    }

    private int bitField0_;
    public static final int GROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object group_;
    /**
     * <code>optional string group = 1;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }

    public static final int KIND_FIELD_NUMBER = 2;
    private volatile java.lang.Object kind_;
    /**
     * <code>optional string kind = 2;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string kind = 2;</code>
     */
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string kind = 2;</code>
     */
    public com.google.protobuf.ByteString
        getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, 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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, 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.Meta.GroupKind)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.GroupKind other = (io.kubernetes.client.proto.Meta.GroupKind) obj;

      boolean result = true;
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup()
            .equals(other.getGroup());
      }
      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 (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      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.Meta.GroupKind parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupKind 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.Meta.GroupKind 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>
     * GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying
     * concepts during lookup stages without having partially valid types
     * 
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind)
        io.kubernetes.client.proto.Meta.GroupKindOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GroupKind.class, io.kubernetes.client.proto.Meta.GroupKind.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GroupKind.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();
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GroupKind getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GroupKind.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GroupKind buildPartial() {
        io.kubernetes.client.proto.Meta.GroupKind result = new io.kubernetes.client.proto.Meta.GroupKind(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.group_ = group_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        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.Meta.GroupKind) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GroupKind)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GroupKind other) {
        if (other == io.kubernetes.client.proto.Meta.GroupKind.getDefaultInstance()) return this;
        if (other.hasGroup()) {
          bitField0_ |= 0x00000001;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000002;
          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.Meta.GroupKind parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GroupKind) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object group_ = "";
      /**
       * <code>optional string group = 1;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroup(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * <code>optional string kind = 2;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string kind = 2;</code>
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string kind = 2;</code>
       */
      public com.google.protobuf.ByteString
          getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string kind = 2;</code>
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string kind = 2;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000002);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       * <code>optional string kind = 2;</code>
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        kind_ = value;
        onChanged();
        return this;
      }
      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.apimachinery.pkg.apis.meta.v1.GroupKind)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind)
    private static final io.kubernetes.client.proto.Meta.GroupKind DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GroupKind();
    }

    public static io.kubernetes.client.proto.Meta.GroupKind getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GroupKind getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GroupResourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string group = 1;</code>
     */
    boolean hasGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    java.lang.String getGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupBytes();

    /**
     * <code>optional string resource = 2;</code>
     */
    boolean hasResource();
    /**
     * <code>optional string resource = 2;</code>
     */
    java.lang.String getResource();
    /**
     * <code>optional string resource = 2;</code>
     */
    com.google.protobuf.ByteString
        getResourceBytes();
  }
  /**
   * <pre>
   * GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying
   * concepts during lookup stages without having partially valid types
   * 
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource}
   */
  public  static final class GroupResource extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource)
      GroupResourceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GroupResource.newBuilder() to construct.
    private GroupResource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GroupResource() {
      group_ = "";
      resource_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GroupResource(
        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;
              group_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              resource_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GroupResource.class, io.kubernetes.client.proto.Meta.GroupResource.Builder.class);
    }

    private int bitField0_;
    public static final int GROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object group_;
    /**
     * <code>optional string group = 1;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }

    public static final int RESOURCE_FIELD_NUMBER = 2;
    private volatile java.lang.Object resource_;
    /**
     * <code>optional string resource = 2;</code>
     */
    public boolean hasResource() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <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;
      }
    }
    /**
     * <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;
      }
    }

    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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, resource_);
      }
      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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, resource_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup()
            .equals(other.getGroup());
      }
      result = result && (hasResource() == other.hasResource());
      if (hasResource()) {
        result = result && getResource()
            .equals(other.getResource());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      if (hasResource()) {
        hash = (37 * hash) + RESOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getResource().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupResource 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.Meta.GroupResource 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>
     * GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying
     * concepts during lookup stages without having partially valid types
     * 
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource)
        io.kubernetes.client.proto.Meta.GroupResourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GroupResource.class, io.kubernetes.client.proto.Meta.GroupResource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GroupResource.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();
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        resource_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GroupResource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GroupResource.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GroupResource buildPartial() {
        io.kubernetes.client.proto.Meta.GroupResource result = new io.kubernetes.client.proto.Meta.GroupResource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.group_ = group_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.resource_ = resource_;
        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.Meta.GroupResource) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GroupResource)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GroupResource other) {
        if (other == io.kubernetes.client.proto.Meta.GroupResource.getDefaultInstance()) return this;
        if (other.hasGroup()) {
          bitField0_ |= 0x00000001;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasResource()) {
          bitField0_ |= 0x00000002;
          resource_ = other.resource_;
          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.Meta.GroupResource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GroupResource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object group_ = "";
      /**
       * <code>optional string group = 1;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroup(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resource_ = "";
      /**
       * <code>optional string resource = 2;</code>
       */
      public boolean hasResource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <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;
        }
      }
      /**
       * <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;
        }
      }
      /**
       * <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;
      }
      /**
       * <code>optional string resource = 2;</code>
       */
      public Builder clearResource() {
        bitField0_ = (bitField0_ & ~0x00000002);
        resource_ = getDefaultInstance().getResource();
        onChanged();
        return this;
      }
      /**
       * <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;
      }
      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.apimachinery.pkg.apis.meta.v1.GroupResource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource)
    private static final io.kubernetes.client.proto.Meta.GroupResource DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GroupResource();
    }

    public static io.kubernetes.client.proto.Meta.GroupResource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GroupResource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GroupVersionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string group = 1;</code>
     */
    boolean hasGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    java.lang.String getGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupBytes();

    /**
     * <code>optional string version = 2;</code>
     */
    boolean hasVersion();
    /**
     * <code>optional string version = 2;</code>
     */
    java.lang.String getVersion();
    /**
     * <code>optional string version = 2;</code>
     */
    com.google.protobuf.ByteString
        getVersionBytes();
  }
  /**
   * <pre>
   * GroupVersion contains the "group" and the "version", which uniquely identifies the API.
   * 
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion}
   */
  public  static final class GroupVersion extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion)
      GroupVersionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GroupVersion.newBuilder() to construct.
    private GroupVersion(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GroupVersion() {
      group_ = "";
      version_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GroupVersion(
        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;
              group_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              version_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GroupVersion.class, io.kubernetes.client.proto.Meta.GroupVersion.Builder.class);
    }

    private int bitField0_;
    public static final int GROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object group_;
    /**
     * <code>optional string group = 1;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object version_;
    /**
     * <code>optional string version = 2;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string version = 2;</code>
     */
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          version_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string version = 2;</code>
     */
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = 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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
      }
      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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup()
            .equals(other.getGroup());
      }
      result = result && (hasVersion() == other.hasVersion());
      if (hasVersion()) {
        result = result && getVersion()
            .equals(other.getVersion());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersion 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.Meta.GroupVersion 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>
     * GroupVersion contains the "group" and the "version", which uniquely identifies the API.
     * 
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion)
        io.kubernetes.client.proto.Meta.GroupVersionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GroupVersion.class, io.kubernetes.client.proto.Meta.GroupVersion.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GroupVersion.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();
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersion getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GroupVersion.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersion buildPartial() {
        io.kubernetes.client.proto.Meta.GroupVersion result = new io.kubernetes.client.proto.Meta.GroupVersion(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.group_ = group_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.version_ = version_;
        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.Meta.GroupVersion) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GroupVersion)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GroupVersion other) {
        if (other == io.kubernetes.client.proto.Meta.GroupVersion.getDefaultInstance()) return this;
        if (other.hasGroup()) {
          bitField0_ |= 0x00000001;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000002;
          version_ = other.version_;
          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.Meta.GroupVersion parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GroupVersion) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object group_ = "";
      /**
       * <code>optional string group = 1;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroup(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * <code>optional string version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            version_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = 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.apimachinery.pkg.apis.meta.v1.GroupVersion)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion)
    private static final io.kubernetes.client.proto.Meta.GroupVersion DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GroupVersion();
    }

    public static io.kubernetes.client.proto.Meta.GroupVersion getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GroupVersion getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GroupVersionForDiscoveryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * groupVersion specifies the API group and version in the form "group/version"
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    boolean hasGroupVersion();
    /**
     * <pre>
     * groupVersion specifies the API group and version in the form "group/version"
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    java.lang.String getGroupVersion();
    /**
     * <pre>
     * groupVersion specifies the API group and version in the form "group/version"
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupVersionBytes();

    /**
     * <pre>
     * version specifies the version in the form of "version". This is to save
     * the clients the trouble of splitting the GroupVersion.
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    boolean hasVersion();
    /**
     * <pre>
     * version specifies the version in the form of "version". This is to save
     * the clients the trouble of splitting the GroupVersion.
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    java.lang.String getVersion();
    /**
     * <pre>
     * version specifies the version in the form of "version". This is to save
     * the clients the trouble of splitting the GroupVersion.
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    com.google.protobuf.ByteString
        getVersionBytes();
  }
  /**
   * <pre>
   * GroupVersion contains the "group/version" and "version" string of a version.
   * It is made a struct to keep extensibility.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery}
   */
  public  static final class GroupVersionForDiscovery extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery)
      GroupVersionForDiscoveryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GroupVersionForDiscovery.newBuilder() to construct.
    private GroupVersionForDiscovery(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GroupVersionForDiscovery() {
      groupVersion_ = "";
      version_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GroupVersionForDiscovery(
        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;
              groupVersion_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              version_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.class, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder.class);
    }

    private int bitField0_;
    public static final int GROUPVERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object groupVersion_;
    /**
     * <pre>
     * groupVersion specifies the API group and version in the form "group/version"
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    public boolean hasGroupVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * groupVersion specifies the API group and version in the form "group/version"
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    public java.lang.String getGroupVersion() {
      java.lang.Object ref = groupVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          groupVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * groupVersion specifies the API group and version in the form "group/version"
     * </pre>
     *
     * <code>optional string groupVersion = 1;</code>
     */
    public com.google.protobuf.ByteString
        getGroupVersionBytes() {
      java.lang.Object ref = groupVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        groupVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object version_;
    /**
     * <pre>
     * version specifies the version in the form of "version". This is to save
     * the clients the trouble of splitting the GroupVersion.
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * version specifies the version in the form of "version". This is to save
     * the clients the trouble of splitting the GroupVersion.
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          version_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * version specifies the version in the form of "version". This is to save
     * the clients the trouble of splitting the GroupVersion.
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = 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, groupVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
      }
      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, groupVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasGroupVersion() == other.hasGroupVersion());
      if (hasGroupVersion()) {
        result = result && getGroupVersion()
            .equals(other.getGroupVersion());
      }
      result = result && (hasVersion() == other.hasVersion());
      if (hasVersion()) {
        result = result && getVersion()
            .equals(other.getVersion());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGroupVersion()) {
        hash = (37 * hash) + GROUPVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getGroupVersion().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery 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.Meta.GroupVersionForDiscovery 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>
     * GroupVersion contains the "group/version" and "version" string of a version.
     * It is made a struct to keep extensibility.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery)
        io.kubernetes.client.proto.Meta.GroupVersionForDiscoveryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.class, io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.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();
        groupVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery buildPartial() {
        io.kubernetes.client.proto.Meta.GroupVersionForDiscovery result = new io.kubernetes.client.proto.Meta.GroupVersionForDiscovery(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.groupVersion_ = groupVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.version_ = version_;
        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.Meta.GroupVersionForDiscovery) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GroupVersionForDiscovery)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GroupVersionForDiscovery other) {
        if (other == io.kubernetes.client.proto.Meta.GroupVersionForDiscovery.getDefaultInstance()) return this;
        if (other.hasGroupVersion()) {
          bitField0_ |= 0x00000001;
          groupVersion_ = other.groupVersion_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000002;
          version_ = other.version_;
          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.Meta.GroupVersionForDiscovery parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GroupVersionForDiscovery) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object groupVersion_ = "";
      /**
       * <pre>
       * groupVersion specifies the API group and version in the form "group/version"
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public boolean hasGroupVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * groupVersion specifies the API group and version in the form "group/version"
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public java.lang.String getGroupVersion() {
        java.lang.Object ref = groupVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            groupVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * groupVersion specifies the API group and version in the form "group/version"
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public com.google.protobuf.ByteString
          getGroupVersionBytes() {
        java.lang.Object ref = groupVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          groupVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * groupVersion specifies the API group and version in the form "group/version"
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public Builder setGroupVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        groupVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * groupVersion specifies the API group and version in the form "group/version"
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public Builder clearGroupVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        groupVersion_ = getDefaultInstance().getGroupVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * groupVersion specifies the API group and version in the form "group/version"
       * </pre>
       *
       * <code>optional string groupVersion = 1;</code>
       */
      public Builder setGroupVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        groupVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * <pre>
       * version specifies the version in the form of "version". This is to save
       * the clients the trouble of splitting the GroupVersion.
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * version specifies the version in the form of "version". This is to save
       * the clients the trouble of splitting the GroupVersion.
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            version_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * version specifies the version in the form of "version". This is to save
       * the clients the trouble of splitting the GroupVersion.
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * version specifies the version in the form of "version". This is to save
       * the clients the trouble of splitting the GroupVersion.
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * version specifies the version in the form of "version". This is to save
       * the clients the trouble of splitting the GroupVersion.
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * version specifies the version in the form of "version". This is to save
       * the clients the trouble of splitting the GroupVersion.
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = 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.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery)
    private static final io.kubernetes.client.proto.Meta.GroupVersionForDiscovery DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GroupVersionForDiscovery();
    }

    public static io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GroupVersionForDiscovery getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GroupVersionKindOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string group = 1;</code>
     */
    boolean hasGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    java.lang.String getGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupBytes();

    /**
     * <code>optional string version = 2;</code>
     */
    boolean hasVersion();
    /**
     * <code>optional string version = 2;</code>
     */
    java.lang.String getVersion();
    /**
     * <code>optional string version = 2;</code>
     */
    com.google.protobuf.ByteString
        getVersionBytes();

    /**
     * <code>optional string kind = 3;</code>
     */
    boolean hasKind();
    /**
     * <code>optional string kind = 3;</code>
     */
    java.lang.String getKind();
    /**
     * <code>optional string kind = 3;</code>
     */
    com.google.protobuf.ByteString
        getKindBytes();
  }
  /**
   * <pre>
   * GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion
   * to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
   * 
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind}
   */
  public  static final class GroupVersionKind extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind)
      GroupVersionKindOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GroupVersionKind.newBuilder() to construct.
    private GroupVersionKind(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GroupVersionKind() {
      group_ = "";
      version_ = "";
      kind_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GroupVersionKind(
        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;
              group_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              version_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GroupVersionKind.class, io.kubernetes.client.proto.Meta.GroupVersionKind.Builder.class);
    }

    private int bitField0_;
    public static final int GROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object group_;
    /**
     * <code>optional string group = 1;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object version_;
    /**
     * <code>optional string version = 2;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string version = 2;</code>
     */
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          version_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string version = 2;</code>
     */
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KIND_FIELD_NUMBER = 3;
    private volatile java.lang.Object kind_;
    /**
     * <code>optional string kind = 3;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string kind = 3;</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;
      }
    }
    /**
     * <code>optional string kind = 3;</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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, 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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, 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.Meta.GroupVersionKind)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.GroupVersionKind other = (io.kubernetes.client.proto.Meta.GroupVersionKind) obj;

      boolean result = true;
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup()
            .equals(other.getGroup());
      }
      result = result && (hasVersion() == other.hasVersion());
      if (hasVersion()) {
        result = result && getVersion()
            .equals(other.getVersion());
      }
      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 (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion().hashCode();
      }
      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.Meta.GroupVersionKind parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionKind 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.Meta.GroupVersionKind 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>
     * GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion
     * to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
     * 
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind)
        io.kubernetes.client.proto.Meta.GroupVersionKindOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GroupVersionKind.class, io.kubernetes.client.proto.Meta.GroupVersionKind.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GroupVersionKind.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();
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersionKind getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GroupVersionKind.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersionKind buildPartial() {
        io.kubernetes.client.proto.Meta.GroupVersionKind result = new io.kubernetes.client.proto.Meta.GroupVersionKind(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.group_ = group_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.version_ = version_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        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.Meta.GroupVersionKind) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GroupVersionKind)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GroupVersionKind other) {
        if (other == io.kubernetes.client.proto.Meta.GroupVersionKind.getDefaultInstance()) return this;
        if (other.hasGroup()) {
          bitField0_ |= 0x00000001;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000002;
          version_ = other.version_;
          onChanged();
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000004;
          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.Meta.GroupVersionKind parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GroupVersionKind) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object group_ = "";
      /**
       * <code>optional string group = 1;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroup(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * <code>optional string version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            version_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * <code>optional string kind = 3;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string kind = 3;</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;
        }
      }
      /**
       * <code>optional string kind = 3;</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;
        }
      }
      /**
       * <code>optional string kind = 3;</code>
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string kind = 3;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000004);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       * <code>optional string kind = 3;</code>
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        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.apimachinery.pkg.apis.meta.v1.GroupVersionKind)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind)
    private static final io.kubernetes.client.proto.Meta.GroupVersionKind DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GroupVersionKind();
    }

    public static io.kubernetes.client.proto.Meta.GroupVersionKind getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GroupVersionKind getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GroupVersionResourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string group = 1;</code>
     */
    boolean hasGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    java.lang.String getGroup();
    /**
     * <code>optional string group = 1;</code>
     */
    com.google.protobuf.ByteString
        getGroupBytes();

    /**
     * <code>optional string version = 2;</code>
     */
    boolean hasVersion();
    /**
     * <code>optional string version = 2;</code>
     */
    java.lang.String getVersion();
    /**
     * <code>optional string version = 2;</code>
     */
    com.google.protobuf.ByteString
        getVersionBytes();

    /**
     * <code>optional string resource = 3;</code>
     */
    boolean hasResource();
    /**
     * <code>optional string resource = 3;</code>
     */
    java.lang.String getResource();
    /**
     * <code>optional string resource = 3;</code>
     */
    com.google.protobuf.ByteString
        getResourceBytes();
  }
  /**
   * <pre>
   * GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion
   * to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
   * 
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource}
   */
  public  static final class GroupVersionResource extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource)
      GroupVersionResourceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GroupVersionResource.newBuilder() to construct.
    private GroupVersionResource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GroupVersionResource() {
      group_ = "";
      version_ = "";
      resource_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GroupVersionResource(
        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;
              group_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              version_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              resource_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.GroupVersionResource.class, io.kubernetes.client.proto.Meta.GroupVersionResource.Builder.class);
    }

    private int bitField0_;
    public static final int GROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object group_;
    /**
     * <code>optional string group = 1;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }
    /**
     * <code>optional string group = 1;</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;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object version_;
    /**
     * <code>optional string version = 2;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string version = 2;</code>
     */
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          version_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string version = 2;</code>
     */
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCE_FIELD_NUMBER = 3;
    private volatile java.lang.Object resource_;
    /**
     * <code>optional string resource = 3;</code>
     */
    public boolean hasResource() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string resource = 3;</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;
      }
    }
    /**
     * <code>optional string resource = 3;</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;
      }
    }

    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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, resource_);
      }
      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, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, resource_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup()
            .equals(other.getGroup());
      }
      result = result && (hasVersion() == other.hasVersion());
      if (hasVersion()) {
        result = result && getVersion()
            .equals(other.getVersion());
      }
      result = result && (hasResource() == other.hasResource());
      if (hasResource()) {
        result = result && getResource()
            .equals(other.getResource());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      if (hasVersion()) {
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion().hashCode();
      }
      if (hasResource()) {
        hash = (37 * hash) + RESOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getResource().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.GroupVersionResource 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.Meta.GroupVersionResource 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>
     * GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion
     * to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
     * 
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource)
        io.kubernetes.client.proto.Meta.GroupVersionResourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.GroupVersionResource.class, io.kubernetes.client.proto.Meta.GroupVersionResource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.GroupVersionResource.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();
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        resource_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersionResource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.GroupVersionResource.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.GroupVersionResource buildPartial() {
        io.kubernetes.client.proto.Meta.GroupVersionResource result = new io.kubernetes.client.proto.Meta.GroupVersionResource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.group_ = group_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.version_ = version_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.resource_ = resource_;
        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.Meta.GroupVersionResource) {
          return mergeFrom((io.kubernetes.client.proto.Meta.GroupVersionResource)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.GroupVersionResource other) {
        if (other == io.kubernetes.client.proto.Meta.GroupVersionResource.getDefaultInstance()) return this;
        if (other.hasGroup()) {
          bitField0_ |= 0x00000001;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000002;
          version_ = other.version_;
          onChanged();
        }
        if (other.hasResource()) {
          bitField0_ |= 0x00000004;
          resource_ = other.resource_;
          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.Meta.GroupVersionResource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.GroupVersionResource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object group_ = "";
      /**
       * <code>optional string group = 1;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</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;
        }
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroup(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       * <code>optional string group = 1;</code>
       */
      public Builder setGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        group_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * <code>optional string version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            version_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * <code>optional string version = 2;</code>
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resource_ = "";
      /**
       * <code>optional string resource = 3;</code>
       */
      public boolean hasResource() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string resource = 3;</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;
        }
      }
      /**
       * <code>optional string resource = 3;</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;
        }
      }
      /**
       * <code>optional string resource = 3;</code>
       */
      public Builder setResource(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        resource_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string resource = 3;</code>
       */
      public Builder clearResource() {
        bitField0_ = (bitField0_ & ~0x00000004);
        resource_ = getDefaultInstance().getResource();
        onChanged();
        return this;
      }
      /**
       * <code>optional string resource = 3;</code>
       */
      public Builder setResourceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        resource_ = 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.apimachinery.pkg.apis.meta.v1.GroupVersionResource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource)
    private static final io.kubernetes.client.proto.Meta.GroupVersionResource DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.GroupVersionResource();
    }

    public static io.kubernetes.client.proto.Meta.GroupVersionResource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.GroupVersionResource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InitializerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Initializer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * name of the process that is responsible for initializing this object.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     * <pre>
     * name of the process that is responsible for initializing this object.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * name of the process that is responsible for initializing this object.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();
  }
  /**
   * <pre>
   * Initializer is information about an initializer that has not yet completed.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Initializer}
   */
  public  static final class Initializer extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Initializer)
      InitializerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Initializer.newBuilder() to construct.
    private Initializer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Initializer() {
      name_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Initializer(
        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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Initializer.class, io.kubernetes.client.proto.Meta.Initializer.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * name of the process that is responsible for initializing this object.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * name of the process that is responsible for initializing this object.
     * </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 process that is responsible for initializing this object.
     * </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.Meta.Initializer)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.Initializer other = (io.kubernetes.client.proto.Meta.Initializer) 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.Meta.Initializer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Initializer 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.Meta.Initializer 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>
     * Initializer is information about an initializer that has not yet completed.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Initializer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Initializer)
        io.kubernetes.client.proto.Meta.InitializerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Initializer.class, io.kubernetes.client.proto.Meta.Initializer.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.Initializer.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_descriptor;
      }

      public io.kubernetes.client.proto.Meta.Initializer getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Initializer.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Initializer buildPartial() {
        io.kubernetes.client.proto.Meta.Initializer result = new io.kubernetes.client.proto.Meta.Initializer(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.Meta.Initializer) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Initializer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Initializer other) {
        if (other == io.kubernetes.client.proto.Meta.Initializer.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.Meta.Initializer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Initializer) 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 process that is responsible for initializing this object.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * name of the process that is responsible for initializing this object.
       * </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 process that is responsible for initializing this object.
       * </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 process that is responsible for initializing this object.
       * </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 process that is responsible for initializing this object.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * name of the process that is responsible for initializing this object.
       * </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.apimachinery.pkg.apis.meta.v1.Initializer)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Initializer)
    private static final io.kubernetes.client.proto.Meta.Initializer DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Initializer();
    }

    public static io.kubernetes.client.proto.Meta.Initializer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Initializer getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InitializersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Initializers)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.Initializer> 
        getPendingList();
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    io.kubernetes.client.proto.Meta.Initializer getPending(int index);
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    int getPendingCount();
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.InitializerOrBuilder> 
        getPendingOrBuilderList();
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    io.kubernetes.client.proto.Meta.InitializerOrBuilder getPendingOrBuilder(
        int index);

    /**
     * <pre>
     * If result is set with the Failure field, the object will be persisted to storage and then deleted,
     * ensuring that other clients can observe the deletion.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
     */
    boolean hasResult();
    /**
     * <pre>
     * If result is set with the Failure field, the object will be persisted to storage and then deleted,
     * ensuring that other clients can observe the deletion.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
     */
    io.kubernetes.client.proto.Meta.Status getResult();
    /**
     * <pre>
     * If result is set with the Failure field, the object will be persisted to storage and then deleted,
     * ensuring that other clients can observe the deletion.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
     */
    io.kubernetes.client.proto.Meta.StatusOrBuilder getResultOrBuilder();
  }
  /**
   * <pre>
   * Initializers tracks the progress of initialization.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Initializers}
   */
  public  static final class Initializers extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Initializers)
      InitializersOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Initializers.newBuilder() to construct.
    private Initializers(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Initializers() {
      pending_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Initializers(
        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)) {
                pending_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.Initializer>();
                mutable_bitField0_ |= 0x00000001;
              }
              pending_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.Initializer.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              io.kubernetes.client.proto.Meta.Status.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = result_.toBuilder();
              }
              result_ = input.readMessage(io.kubernetes.client.proto.Meta.Status.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(result_);
                result_ = 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 {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          pending_ = java.util.Collections.unmodifiableList(pending_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Initializers.class, io.kubernetes.client.proto.Meta.Initializers.Builder.class);
    }

    private int bitField0_;
    public static final int PENDING_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.Meta.Initializer> pending_;
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.Initializer> getPendingList() {
      return pending_;
    }
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.InitializerOrBuilder> 
        getPendingOrBuilderList() {
      return pending_;
    }
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    public int getPendingCount() {
      return pending_.size();
    }
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.Initializer getPending(int index) {
      return pending_.get(index);
    }
    /**
     * <pre>
     * Pending is a list of initializers that must execute in order before this object is visible.
     * When the last pending initializer is removed, and no failing result is set, the initializers
     * struct will be set to nil and the object is considered as initialized and visible to all
     * clients.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.InitializerOrBuilder getPendingOrBuilder(
        int index) {
      return pending_.get(index);
    }

    public static final int RESULT_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.Meta.Status result_;
    /**
     * <pre>
     * If result is set with the Failure field, the object will be persisted to storage and then deleted,
     * ensuring that other clients can observe the deletion.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * If result is set with the Failure field, the object will be persisted to storage and then deleted,
     * ensuring that other clients can observe the deletion.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.Status getResult() {
      return result_ == null ? io.kubernetes.client.proto.Meta.Status.getDefaultInstance() : result_;
    }
    /**
     * <pre>
     * If result is set with the Failure field, the object will be persisted to storage and then deleted,
     * ensuring that other clients can observe the deletion.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.StatusOrBuilder getResultOrBuilder() {
      return result_ == null ? io.kubernetes.client.proto.Meta.Status.getDefaultInstance() : result_;
    }

    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 < pending_.size(); i++) {
        output.writeMessage(1, pending_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(2, getResult());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < pending_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, pending_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getResult());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getPendingList()
          .equals(other.getPendingList());
      result = result && (hasResult() == other.hasResult());
      if (hasResult()) {
        result = result && getResult()
            .equals(other.getResult());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPendingCount() > 0) {
        hash = (37 * hash) + PENDING_FIELD_NUMBER;
        hash = (53 * hash) + getPendingList().hashCode();
      }
      if (hasResult()) {
        hash = (37 * hash) + RESULT_FIELD_NUMBER;
        hash = (53 * hash) + getResult().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Initializers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Initializers 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.Meta.Initializers 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>
     * Initializers tracks the progress of initialization.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Initializers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Initializers)
        io.kubernetes.client.proto.Meta.InitializersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Initializers.class, io.kubernetes.client.proto.Meta.Initializers.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPendingFieldBuilder();
          getResultFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (pendingBuilder_ == null) {
          pending_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          pendingBuilder_.clear();
        }
        if (resultBuilder_ == null) {
          result_ = null;
        } else {
          resultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.Initializers getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Initializers buildPartial() {
        io.kubernetes.client.proto.Meta.Initializers result = new io.kubernetes.client.proto.Meta.Initializers(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (pendingBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            pending_ = java.util.Collections.unmodifiableList(pending_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.pending_ = pending_;
        } else {
          result.pending_ = pendingBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        if (resultBuilder_ == null) {
          result.result_ = result_;
        } else {
          result.result_ = resultBuilder_.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.Meta.Initializers) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Initializers)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Initializers other) {
        if (other == io.kubernetes.client.proto.Meta.Initializers.getDefaultInstance()) return this;
        if (pendingBuilder_ == null) {
          if (!other.pending_.isEmpty()) {
            if (pending_.isEmpty()) {
              pending_ = other.pending_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePendingIsMutable();
              pending_.addAll(other.pending_);
            }
            onChanged();
          }
        } else {
          if (!other.pending_.isEmpty()) {
            if (pendingBuilder_.isEmpty()) {
              pendingBuilder_.dispose();
              pendingBuilder_ = null;
              pending_ = other.pending_;
              bitField0_ = (bitField0_ & ~0x00000001);
              pendingBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPendingFieldBuilder() : null;
            } else {
              pendingBuilder_.addAllMessages(other.pending_);
            }
          }
        }
        if (other.hasResult()) {
          mergeResult(other.getResult());
        }
        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.Meta.Initializers parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Initializers) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.Meta.Initializer> pending_ =
        java.util.Collections.emptyList();
      private void ensurePendingIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          pending_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.Initializer>(pending_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Initializer, io.kubernetes.client.proto.Meta.Initializer.Builder, io.kubernetes.client.proto.Meta.InitializerOrBuilder> pendingBuilder_;

      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.Initializer> getPendingList() {
        if (pendingBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pending_);
        } else {
          return pendingBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public int getPendingCount() {
        if (pendingBuilder_ == null) {
          return pending_.size();
        } else {
          return pendingBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.Initializer getPending(int index) {
        if (pendingBuilder_ == null) {
          return pending_.get(index);
        } else {
          return pendingBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder setPending(
          int index, io.kubernetes.client.proto.Meta.Initializer value) {
        if (pendingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePendingIsMutable();
          pending_.set(index, value);
          onChanged();
        } else {
          pendingBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder setPending(
          int index, io.kubernetes.client.proto.Meta.Initializer.Builder builderForValue) {
        if (pendingBuilder_ == null) {
          ensurePendingIsMutable();
          pending_.set(index, builderForValue.build());
          onChanged();
        } else {
          pendingBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder addPending(io.kubernetes.client.proto.Meta.Initializer value) {
        if (pendingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePendingIsMutable();
          pending_.add(value);
          onChanged();
        } else {
          pendingBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder addPending(
          int index, io.kubernetes.client.proto.Meta.Initializer value) {
        if (pendingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePendingIsMutable();
          pending_.add(index, value);
          onChanged();
        } else {
          pendingBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder addPending(
          io.kubernetes.client.proto.Meta.Initializer.Builder builderForValue) {
        if (pendingBuilder_ == null) {
          ensurePendingIsMutable();
          pending_.add(builderForValue.build());
          onChanged();
        } else {
          pendingBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder addPending(
          int index, io.kubernetes.client.proto.Meta.Initializer.Builder builderForValue) {
        if (pendingBuilder_ == null) {
          ensurePendingIsMutable();
          pending_.add(index, builderForValue.build());
          onChanged();
        } else {
          pendingBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder addAllPending(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.Initializer> values) {
        if (pendingBuilder_ == null) {
          ensurePendingIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pending_);
          onChanged();
        } else {
          pendingBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder clearPending() {
        if (pendingBuilder_ == null) {
          pending_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          pendingBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public Builder removePending(int index) {
        if (pendingBuilder_ == null) {
          ensurePendingIsMutable();
          pending_.remove(index);
          onChanged();
        } else {
          pendingBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.Initializer.Builder getPendingBuilder(
          int index) {
        return getPendingFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.InitializerOrBuilder getPendingOrBuilder(
          int index) {
        if (pendingBuilder_ == null) {
          return pending_.get(index);  } else {
          return pendingBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.InitializerOrBuilder> 
           getPendingOrBuilderList() {
        if (pendingBuilder_ != null) {
          return pendingBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pending_);
        }
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.Initializer.Builder addPendingBuilder() {
        return getPendingFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.Initializer.getDefaultInstance());
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.Initializer.Builder addPendingBuilder(
          int index) {
        return getPendingFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.Initializer.getDefaultInstance());
      }
      /**
       * <pre>
       * Pending is a list of initializers that must execute in order before this object is visible.
       * When the last pending initializer is removed, and no failing result is set, the initializers
       * struct will be set to nil and the object is considered as initialized and visible to all
       * clients.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Initializer pending = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.Initializer.Builder> 
           getPendingBuilderList() {
        return getPendingFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Initializer, io.kubernetes.client.proto.Meta.Initializer.Builder, io.kubernetes.client.proto.Meta.InitializerOrBuilder> 
          getPendingFieldBuilder() {
        if (pendingBuilder_ == null) {
          pendingBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Initializer, io.kubernetes.client.proto.Meta.Initializer.Builder, io.kubernetes.client.proto.Meta.InitializerOrBuilder>(
                  pending_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          pending_ = null;
        }
        return pendingBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Status result_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Status, io.kubernetes.client.proto.Meta.Status.Builder, io.kubernetes.client.proto.Meta.StatusOrBuilder> resultBuilder_;
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.Status getResult() {
        if (resultBuilder_ == null) {
          return result_ == null ? io.kubernetes.client.proto.Meta.Status.getDefaultInstance() : result_;
        } else {
          return resultBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public Builder setResult(io.kubernetes.client.proto.Meta.Status value) {
        if (resultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          result_ = value;
          onChanged();
        } else {
          resultBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public Builder setResult(
          io.kubernetes.client.proto.Meta.Status.Builder builderForValue) {
        if (resultBuilder_ == null) {
          result_ = builderForValue.build();
          onChanged();
        } else {
          resultBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public Builder mergeResult(io.kubernetes.client.proto.Meta.Status value) {
        if (resultBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              result_ != null &&
              result_ != io.kubernetes.client.proto.Meta.Status.getDefaultInstance()) {
            result_ =
              io.kubernetes.client.proto.Meta.Status.newBuilder(result_).mergeFrom(value).buildPartial();
          } else {
            result_ = value;
          }
          onChanged();
        } else {
          resultBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public Builder clearResult() {
        if (resultBuilder_ == null) {
          result_ = null;
          onChanged();
        } else {
          resultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.Status.Builder getResultBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getResultFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusOrBuilder getResultOrBuilder() {
        if (resultBuilder_ != null) {
          return resultBuilder_.getMessageOrBuilder();
        } else {
          return result_ == null ?
              io.kubernetes.client.proto.Meta.Status.getDefaultInstance() : result_;
        }
      }
      /**
       * <pre>
       * If result is set with the Failure field, the object will be persisted to storage and then deleted,
       * ensuring that other clients can observe the deletion.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.Status, io.kubernetes.client.proto.Meta.Status.Builder, io.kubernetes.client.proto.Meta.StatusOrBuilder> 
          getResultFieldBuilder() {
        if (resultBuilder_ == null) {
          resultBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Status, io.kubernetes.client.proto.Meta.Status.Builder, io.kubernetes.client.proto.Meta.StatusOrBuilder>(
                  getResult(),
                  getParentForChildren(),
                  isClean());
          result_ = null;
        }
        return resultBuilder_;
      }
      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.apimachinery.pkg.apis.meta.v1.Initializers)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Initializers)
    private static final io.kubernetes.client.proto.Meta.Initializers DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Initializers();
    }

    public static io.kubernetes.client.proto.Meta.Initializers getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Initializers getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LabelSelectorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */
    int getMatchLabelsCount();
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */
    boolean containsMatchLabels(
        java.lang.String key);
    /**
     * Use {@link #getMatchLabelsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getMatchLabels();
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getMatchLabelsMap();
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */

    java.lang.String getMatchLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */

    java.lang.String getMatchLabelsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.LabelSelectorRequirement> 
        getMatchExpressionsList();
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    io.kubernetes.client.proto.Meta.LabelSelectorRequirement getMatchExpressions(int index);
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    int getMatchExpressionsCount();
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder> 
        getMatchExpressionsOrBuilderList();
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder getMatchExpressionsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * A label selector is a label query over a set of resources. The result of matchLabels and
   * matchExpressions are ANDed. An empty label selector matches all objects. A null
   * label selector matches no objects.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector}
   */
  public  static final class LabelSelector extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)
      LabelSelectorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LabelSelector.newBuilder() to construct.
    private LabelSelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LabelSelector() {
      matchExpressions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LabelSelector(
        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)) {
                matchLabels_ = com.google.protobuf.MapField.newMapField(
                    MatchLabelsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              matchLabels__ = input.readMessage(
                  MatchLabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              matchLabels_.getMutableMap().put(
                  matchLabels__.getKey(), matchLabels__.getValue());
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                matchExpressions_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.LabelSelectorRequirement>();
                mutable_bitField0_ |= 0x00000002;
              }
              matchExpressions_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.LabelSelectorRequirement.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)) {
          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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetMatchLabels();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.LabelSelector.class, io.kubernetes.client.proto.Meta.LabelSelector.Builder.class);
    }

    public static final int MATCHLABELS_FIELD_NUMBER = 1;
    private static final class MatchLabelsDefaultEntryHolder {
      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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_MatchLabelsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> matchLabels_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetMatchLabels() {
      if (matchLabels_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MatchLabelsDefaultEntryHolder.defaultEntry);
      }
      return matchLabels_;
    }

    public int getMatchLabelsCount() {
      return internalGetMatchLabels().getMap().size();
    }
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */

    public boolean containsMatchLabels(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetMatchLabels().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMatchLabelsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getMatchLabels() {
      return getMatchLabelsMap();
    }
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getMatchLabelsMap() {
      return internalGetMatchLabels().getMap();
    }
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */

    public java.lang.String getMatchLabelsOrDefault(
        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 =
          internalGetMatchLabels().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
     * map is equivalent to an element of matchExpressions, whose key field is "key", the
     * operator is "In", and the values array contains only "value". The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; matchLabels = 1;</code>
     */

    public java.lang.String getMatchLabelsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetMatchLabels().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int MATCHEXPRESSIONS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.Meta.LabelSelectorRequirement> matchExpressions_;
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.LabelSelectorRequirement> getMatchExpressionsList() {
      return matchExpressions_;
    }
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder> 
        getMatchExpressionsOrBuilderList() {
      return matchExpressions_;
    }
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    public int getMatchExpressionsCount() {
      return matchExpressions_.size();
    }
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.LabelSelectorRequirement getMatchExpressions(int index) {
      return matchExpressions_.get(index);
    }
    /**
     * <pre>
     * matchExpressions is a list of label selector requirements. The requirements are ANDed.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder 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 {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetMatchLabels(),
          MatchLabelsDefaultEntryHolder.defaultEntry,
          1);
      for (int i = 0; i < matchExpressions_.size(); i++) {
        output.writeMessage(2, matchExpressions_.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, java.lang.String> entry
           : internalGetMatchLabels().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        matchLabels__ = MatchLabelsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, matchLabels__);
      }
      for (int i = 0; i < matchExpressions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, 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.Meta.LabelSelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.LabelSelector other = (io.kubernetes.client.proto.Meta.LabelSelector) obj;

      boolean result = true;
      result = result && internalGetMatchLabels().equals(
          other.internalGetMatchLabels());
      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 (!internalGetMatchLabels().getMap().isEmpty()) {
        hash = (37 * hash) + MATCHLABELS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMatchLabels().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.Meta.LabelSelector parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelector 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.Meta.LabelSelector 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 label selector is a label query over a set of resources. The result of matchLabels and
     * matchExpressions are ANDed. An empty label selector matches all objects. A null
     * label selector matches no objects.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)
        io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMatchLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableMatchLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.LabelSelector.class, io.kubernetes.client.proto.Meta.LabelSelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.LabelSelector.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();
        internalGetMutableMatchLabels().clear();
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          matchExpressionsBuilder_.clear();
        }
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.LabelSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.LabelSelector buildPartial() {
        io.kubernetes.client.proto.Meta.LabelSelector result = new io.kubernetes.client.proto.Meta.LabelSelector(this);
        int from_bitField0_ = bitField0_;
        result.matchLabels_ = internalGetMatchLabels();
        result.matchLabels_.makeImmutable();
        if (matchExpressionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            matchExpressions_ = java.util.Collections.unmodifiableList(matchExpressions_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          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.Meta.LabelSelector) {
          return mergeFrom((io.kubernetes.client.proto.Meta.LabelSelector)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.LabelSelector other) {
        if (other == io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()) return this;
        internalGetMutableMatchLabels().mergeFrom(
            other.internalGetMatchLabels());
        if (matchExpressionsBuilder_ == null) {
          if (!other.matchExpressions_.isEmpty()) {
            if (matchExpressions_.isEmpty()) {
              matchExpressions_ = other.matchExpressions_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMatchExpressionsIsMutable();
              matchExpressions_.addAll(other.matchExpressions_);
            }
            onChanged();
          }
        } else {
          if (!other.matchExpressions_.isEmpty()) {
            if (matchExpressionsBuilder_.isEmpty()) {
              matchExpressionsBuilder_.dispose();
              matchExpressionsBuilder_ = null;
              matchExpressions_ = other.matchExpressions_;
              bitField0_ = (bitField0_ & ~0x00000002);
              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.Meta.LabelSelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.LabelSelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> matchLabels_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMatchLabels() {
        if (matchLabels_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MatchLabelsDefaultEntryHolder.defaultEntry);
        }
        return matchLabels_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableMatchLabels() {
        onChanged();;
        if (matchLabels_ == null) {
          matchLabels_ = com.google.protobuf.MapField.newMapField(
              MatchLabelsDefaultEntryHolder.defaultEntry);
        }
        if (!matchLabels_.isMutable()) {
          matchLabels_ = matchLabels_.copy();
        }
        return matchLabels_;
      }

      public int getMatchLabelsCount() {
        return internalGetMatchLabels().getMap().size();
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */

      public boolean containsMatchLabels(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetMatchLabels().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMatchLabelsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMatchLabels() {
        return getMatchLabelsMap();
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getMatchLabelsMap() {
        return internalGetMatchLabels().getMap();
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */

      public java.lang.String getMatchLabelsOrDefault(
          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 =
            internalGetMatchLabels().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */

      public java.lang.String getMatchLabelsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetMatchLabels().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMatchLabels() {
        internalGetMutableMatchLabels().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */

      public Builder removeMatchLabels(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableMatchLabels().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableMatchLabels() {
        return internalGetMutableMatchLabels().getMutableMap();
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */
      public Builder putMatchLabels(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableMatchLabels().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
       * map is equivalent to an element of matchExpressions, whose key field is "key", the
       * operator is "In", and the values array contains only "value". The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; matchLabels = 1;</code>
       */

      public Builder putAllMatchLabels(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableMatchLabels().getMutableMap()
            .putAll(values);
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.Meta.LabelSelectorRequirement> matchExpressions_ =
        java.util.Collections.emptyList();
      private void ensureMatchExpressionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          matchExpressions_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.LabelSelectorRequirement>(matchExpressions_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.LabelSelectorRequirement, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder, io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder> matchExpressionsBuilder_;

      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.LabelSelectorRequirement> getMatchExpressionsList() {
        if (matchExpressionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matchExpressions_);
        } else {
          return matchExpressionsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public int getMatchExpressionsCount() {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.size();
        } else {
          return matchExpressionsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorRequirement getMatchExpressions(int index) {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.get(index);
        } else {
          return matchExpressionsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder setMatchExpressions(
          int index, io.kubernetes.client.proto.Meta.LabelSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.set(index, value);
          onChanged();
        } else {
          matchExpressionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder setMatchExpressions(
          int index, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.set(index, builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder addMatchExpressions(io.kubernetes.client.proto.Meta.LabelSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(value);
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder addMatchExpressions(
          int index, io.kubernetes.client.proto.Meta.LabelSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(index, value);
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder addMatchExpressions(
          io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder addMatchExpressions(
          int index, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(index, builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder addAllMatchExpressions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.LabelSelectorRequirement> values) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, matchExpressions_);
          onChanged();
        } else {
          matchExpressionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder clearMatchExpressions() {
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          matchExpressionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public Builder removeMatchExpressions(int index) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.remove(index);
          onChanged();
        } else {
          matchExpressionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder getMatchExpressionsBuilder(
          int index) {
        return getMatchExpressionsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder getMatchExpressionsOrBuilder(
          int index) {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.get(index);  } else {
          return matchExpressionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder> 
           getMatchExpressionsOrBuilderList() {
        if (matchExpressionsBuilder_ != null) {
          return matchExpressionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matchExpressions_);
        }
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder addMatchExpressionsBuilder() {
        return getMatchExpressionsFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.LabelSelectorRequirement.getDefaultInstance());
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder addMatchExpressionsBuilder(
          int index) {
        return getMatchExpressionsFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.getDefaultInstance());
      }
      /**
       * <pre>
       * matchExpressions is a list of label selector requirements. The requirements are ANDed.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement matchExpressions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder> 
           getMatchExpressionsBuilderList() {
        return getMatchExpressionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.LabelSelectorRequirement, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder, io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder> 
          getMatchExpressionsFieldBuilder() {
        if (matchExpressionsBuilder_ == null) {
          matchExpressionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.LabelSelectorRequirement, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder, io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder>(
                  matchExpressions_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  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.apimachinery.pkg.apis.meta.v1.LabelSelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)
    private static final io.kubernetes.client.proto.Meta.LabelSelector DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.LabelSelector();
    }

    public static io.kubernetes.client.proto.Meta.LabelSelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.LabelSelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LabelSelectorRequirementOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * key is the label key that the selector applies to.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <pre>
     * key is the label key that the selector applies to.
     * +patchMergeKey=key
     * +patchStrategy=merge
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <pre>
     * key is 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>
     * operator represents a key's relationship to a set of values.
     * Valid operators ard In, NotIn, Exists and DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    boolean hasOperator();
    /**
     * <pre>
     * operator represents a key's relationship to a set of values.
     * Valid operators ard In, NotIn, Exists and DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    java.lang.String getOperator();
    /**
     * <pre>
     * operator represents a key's relationship to a set of values.
     * Valid operators ard In, NotIn, Exists and DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    com.google.protobuf.ByteString
        getOperatorBytes();

    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    java.util.List<java.lang.String>
        getValuesList();
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    int getValuesCount();
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    java.lang.String getValues(int index);
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    com.google.protobuf.ByteString
        getValuesBytes(int index);
  }
  /**
   * <pre>
   * A label 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.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement}
   */
  public  static final class LabelSelectorRequirement extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement)
      LabelSelectorRequirementOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LabelSelectorRequirement.newBuilder() to construct.
    private LabelSelectorRequirement(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LabelSelectorRequirement() {
      key_ = "";
      operator_ = "";
      values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LabelSelectorRequirement(
        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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.LabelSelectorRequirement.class, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * <pre>
     * key is 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>
     * key is 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>
     * key is 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>
     * operator represents a key's relationship to a set of values.
     * Valid operators ard In, NotIn, Exists and DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public boolean hasOperator() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * operator represents a key's relationship to a set of values.
     * Valid operators ard In, NotIn, Exists and DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public java.lang.String getOperator() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          operator_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * operator represents a key's relationship to a set of values.
     * Valid operators ard In, NotIn, Exists and DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public com.google.protobuf.ByteString
        getOperatorBytes() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operator_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList values_;
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getValuesList() {
      return values_;
    }
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     * <pre>
     * values is an array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. This array is replaced during a strategic
     * merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public com.google.protobuf.ByteString
        getValuesBytes(int index) {
      return values_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;
    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.Meta.LabelSelectorRequirement)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.LabelSelectorRequirement other = (io.kubernetes.client.proto.Meta.LabelSelectorRequirement) 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.Meta.LabelSelectorRequirement parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement 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.Meta.LabelSelectorRequirement 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 label 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.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement)
        io.kubernetes.client.proto.Meta.LabelSelectorRequirementOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.LabelSelectorRequirement.class, io.kubernetes.client.proto.Meta.LabelSelectorRequirement.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.LabelSelectorRequirement.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_descriptor;
      }

      public io.kubernetes.client.proto.Meta.LabelSelectorRequirement getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.LabelSelectorRequirement.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.LabelSelectorRequirement buildPartial() {
        io.kubernetes.client.proto.Meta.LabelSelectorRequirement result = new io.kubernetes.client.proto.Meta.LabelSelectorRequirement(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.Meta.LabelSelectorRequirement) {
          return mergeFrom((io.kubernetes.client.proto.Meta.LabelSelectorRequirement)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.LabelSelectorRequirement other) {
        if (other == io.kubernetes.client.proto.Meta.LabelSelectorRequirement.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.Meta.LabelSelectorRequirement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.LabelSelectorRequirement) 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 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>
       * key is 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>
       * key is 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>
       * key is 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>
       * key is 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>
       * key is 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>
       * operator represents a key's relationship to a set of values.
       * Valid operators ard In, NotIn, Exists and DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public boolean hasOperator() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * operator represents a key's relationship to a set of values.
       * Valid operators ard In, NotIn, Exists and DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public java.lang.String getOperator() {
        java.lang.Object ref = operator_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            operator_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * operator represents a key's relationship to a set of values.
       * Valid operators ard In, NotIn, Exists and DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public com.google.protobuf.ByteString
          getOperatorBytes() {
        java.lang.Object ref = operator_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operator_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * operator represents a key's relationship to a set of values.
       * Valid operators ard In, NotIn, Exists and DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperator(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * operator represents a key's relationship to a set of values.
       * Valid operators ard In, NotIn, Exists and DoesNotExist.
       * </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 a set of values.
       * Valid operators ard In, NotIn, Exists and DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperatorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getValuesList() {
        return values_.getUnmodifiableView();
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public com.google.protobuf.ByteString
          getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder setValues(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureValuesIsMutable();
        values_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addValues(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addAllValues(
          java.lang.Iterable<java.lang.String> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder clearValues() {
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * values is an array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. This array is replaced during a strategic
       * merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addValuesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }
      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.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement)
    private static final io.kubernetes.client.proto.Meta.LabelSelectorRequirement DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.LabelSelectorRequirement();
    }

    public static io.kubernetes.client.proto.Meta.LabelSelectorRequirement getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.LabelSelectorRequirement getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListMetaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 1;</code>
     */
    boolean hasSelfLink();
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 1;</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 = 1;</code>
     */
    com.google.protobuf.ByteString
        getSelfLinkBytes();

    /**
     * <pre>
     * String that identifies the server's internal version of this object that
     * can be used by clients to determine when objects have changed.
     * Value must be treated as opaque by clients and passed unmodified back to the server.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 2;</code>
     */
    boolean hasResourceVersion();
    /**
     * <pre>
     * String that identifies the server's internal version of this object that
     * can be used by clients to determine when objects have changed.
     * Value must be treated as opaque by clients and passed unmodified back to the server.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 2;</code>
     */
    java.lang.String getResourceVersion();
    /**
     * <pre>
     * String that identifies the server's internal version of this object that
     * can be used by clients to determine when objects have changed.
     * Value must be treated as opaque by clients and passed unmodified back to the server.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 2;</code>
     */
    com.google.protobuf.ByteString
        getResourceVersionBytes();
  }
  /**
   * <pre>
   * ListMeta describes metadata that synthetic resources must have, including lists and
   * various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta}
   */
  public  static final class ListMeta extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta)
      ListMetaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListMeta.newBuilder() to construct.
    private ListMeta(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListMeta() {
      selfLink_ = "";
      resourceVersion_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListMeta(
        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;
              selfLink_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              resourceVersion_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.ListMeta.class, io.kubernetes.client.proto.Meta.ListMeta.Builder.class);
    }

    private int bitField0_;
    public static final int SELFLINK_FIELD_NUMBER = 1;
    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 = 1;</code>
     */
    public boolean hasSelfLink() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * SelfLink is a URL representing this object.
     * Populated by the system.
     * Read-only.
     * +optional
     * </pre>
     *
     * <code>optional string selfLink = 1;</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 = 1;</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 RESOURCEVERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object resourceVersion_;
    /**
     * <pre>
     * String that identifies the server's internal version of this object that
     * can be used by clients to determine when objects have changed.
     * Value must be treated as opaque by clients and passed unmodified back to the server.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 2;</code>
     */
    public boolean hasResourceVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * String that identifies the server's internal version of this object that
     * can be used by clients to determine when objects have changed.
     * Value must be treated as opaque by clients and passed unmodified back to the server.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 2;</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>
     * String that identifies the server's internal version of this object that
     * can be used by clients to determine when objects have changed.
     * Value must be treated as opaque by clients and passed unmodified back to the server.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 2;</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;
      }
    }

    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, selfLink_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, resourceVersion_);
      }
      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, selfLink_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, resourceVersion_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasSelfLink() == other.hasSelfLink());
      if (hasSelfLink()) {
        result = result && getSelfLink()
            .equals(other.getSelfLink());
      }
      result = result && (hasResourceVersion() == other.hasResourceVersion());
      if (hasResourceVersion()) {
        result = result && getResourceVersion()
            .equals(other.getResourceVersion());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSelfLink()) {
        hash = (37 * hash) + SELFLINK_FIELD_NUMBER;
        hash = (53 * hash) + getSelfLink().hashCode();
      }
      if (hasResourceVersion()) {
        hash = (37 * hash) + RESOURCEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getResourceVersion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ListMeta 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.Meta.ListMeta 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>
     * ListMeta describes metadata that synthetic resources must have, including lists and
     * various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta)
        io.kubernetes.client.proto.Meta.ListMetaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.ListMeta.class, io.kubernetes.client.proto.Meta.ListMeta.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.ListMeta.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();
        selfLink_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        resourceVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.ListMeta getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.ListMeta buildPartial() {
        io.kubernetes.client.proto.Meta.ListMeta result = new io.kubernetes.client.proto.Meta.ListMeta(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.selfLink_ = selfLink_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.resourceVersion_ = resourceVersion_;
        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.Meta.ListMeta) {
          return mergeFrom((io.kubernetes.client.proto.Meta.ListMeta)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.ListMeta other) {
        if (other == io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) return this;
        if (other.hasSelfLink()) {
          bitField0_ |= 0x00000001;
          selfLink_ = other.selfLink_;
          onChanged();
        }
        if (other.hasResourceVersion()) {
          bitField0_ |= 0x00000002;
          resourceVersion_ = other.resourceVersion_;
          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.Meta.ListMeta parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.ListMeta) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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 = 1;</code>
       */
      public boolean hasSelfLink() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * SelfLink is a URL representing this object.
       * Populated by the system.
       * Read-only.
       * +optional
       * </pre>
       *
       * <code>optional string selfLink = 1;</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 = 1;</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 = 1;</code>
       */
      public Builder setSelfLink(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        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 = 1;</code>
       */
      public Builder clearSelfLink() {
        bitField0_ = (bitField0_ & ~0x00000001);
        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 = 1;</code>
       */
      public Builder setSelfLinkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        selfLink_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resourceVersion_ = "";
      /**
       * <pre>
       * String that identifies the server's internal version of this object that
       * can be used by clients to determine when objects have changed.
       * Value must be treated as opaque by clients and passed unmodified back to the server.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 2;</code>
       */
      public boolean hasResourceVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * String that identifies the server's internal version of this object that
       * can be used by clients to determine when objects have changed.
       * Value must be treated as opaque by clients and passed unmodified back to the server.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 2;</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>
       * String that identifies the server's internal version of this object that
       * can be used by clients to determine when objects have changed.
       * Value must be treated as opaque by clients and passed unmodified back to the server.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 2;</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>
       * String that identifies the server's internal version of this object that
       * can be used by clients to determine when objects have changed.
       * Value must be treated as opaque by clients and passed unmodified back to the server.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 2;</code>
       */
      public Builder setResourceVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        resourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * String that identifies the server's internal version of this object that
       * can be used by clients to determine when objects have changed.
       * Value must be treated as opaque by clients and passed unmodified back to the server.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 2;</code>
       */
      public Builder clearResourceVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        resourceVersion_ = getDefaultInstance().getResourceVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * String that identifies the server's internal version of this object that
       * can be used by clients to determine when objects have changed.
       * Value must be treated as opaque by clients and passed unmodified back to the server.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 2;</code>
       */
      public Builder setResourceVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        resourceVersion_ = 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.apimachinery.pkg.apis.meta.v1.ListMeta)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta)
    private static final io.kubernetes.client.proto.Meta.ListMeta DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.ListMeta();
    }

    public static io.kubernetes.client.proto.Meta.ListMeta getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.ListMeta getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.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.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions}
   */
  public  static final class ListOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.ListOptions.class, io.kubernetes.client.proto.Meta.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.Meta.ListOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.ListOptions other = (io.kubernetes.client.proto.Meta.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.Meta.ListOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ListOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ListOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ListOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ListOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.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.Meta.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.Meta.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.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions)
        io.kubernetes.client.proto.Meta.ListOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.ListOptions.class, io.kubernetes.client.proto.Meta.ListOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_descriptor;
      }

      public io.kubernetes.client.proto.Meta.ListOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.ListOptions.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.ListOptions buildPartial() {
        io.kubernetes.client.proto.Meta.ListOptions result = new io.kubernetes.client.proto.Meta.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.Meta.ListOptions) {
          return mergeFrom((io.kubernetes.client.proto.Meta.ListOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.ListOptions other) {
        if (other == io.kubernetes.client.proto.Meta.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.Meta.ListOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.ListOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions)
    private static final io.kubernetes.client.proto.Meta.ListOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.ListOptions();
    }

    public static io.kubernetes.client.proto.Meta.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.Meta.ListOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MicroTimeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    boolean hasSeconds();
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    long getSeconds();

    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    boolean hasNanos();
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    int getNanos();
  }
  /**
   * <pre>
   * MicroTime is version of Time with microsecond level precision.
   * 
   * +protobuf.options.marshal=false
   * +protobuf.as=Timestamp
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime}
   */
  public  static final class MicroTime extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime)
      MicroTimeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MicroTime.newBuilder() to construct.
    private MicroTime(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MicroTime() {
      seconds_ = 0L;
      nanos_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MicroTime(
        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;
              seconds_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              nanos_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.MicroTime.class, io.kubernetes.client.proto.Meta.MicroTime.Builder.class);
    }

    private int bitField0_;
    public static final int SECONDS_FIELD_NUMBER = 1;
    private long seconds_;
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    public long getSeconds() {
      return seconds_;
    }

    public static final int NANOS_FIELD_NUMBER = 2;
    private int nanos_;
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    public boolean hasNanos() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    public int getNanos() {
      return nanos_;
    }

    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, seconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, nanos_);
      }
      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, seconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, nanos_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasSeconds() == other.hasSeconds());
      if (hasSeconds()) {
        result = result && (getSeconds()
            == other.getSeconds());
      }
      result = result && (hasNanos() == other.hasNanos());
      if (hasNanos()) {
        result = result && (getNanos()
            == other.getNanos());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSeconds()) {
        hash = (37 * hash) + SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSeconds());
      }
      if (hasNanos()) {
        hash = (37 * hash) + NANOS_FIELD_NUMBER;
        hash = (53 * hash) + getNanos();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.MicroTime 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.Meta.MicroTime 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>
     * MicroTime is version of Time with microsecond level precision.
     * 
     * +protobuf.options.marshal=false
     * +protobuf.as=Timestamp
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime)
        io.kubernetes.client.proto.Meta.MicroTimeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.MicroTime.class, io.kubernetes.client.proto.Meta.MicroTime.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.MicroTime.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();
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        nanos_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.MicroTime getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.MicroTime buildPartial() {
        io.kubernetes.client.proto.Meta.MicroTime result = new io.kubernetes.client.proto.Meta.MicroTime(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seconds_ = seconds_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.nanos_ = nanos_;
        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.Meta.MicroTime) {
          return mergeFrom((io.kubernetes.client.proto.Meta.MicroTime)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.MicroTime other) {
        if (other == io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()) return this;
        if (other.hasSeconds()) {
          setSeconds(other.getSeconds());
        }
        if (other.hasNanos()) {
          setNanos(other.getNanos());
        }
        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.Meta.MicroTime parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.MicroTime) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long seconds_ ;
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000001;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seconds_ = 0L;
        onChanged();
        return this;
      }

      private int nanos_ ;
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public boolean hasNanos() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public int getNanos() {
        return nanos_;
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public Builder setNanos(int value) {
        bitField0_ |= 0x00000002;
        nanos_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public Builder clearNanos() {
        bitField0_ = (bitField0_ & ~0x00000002);
        nanos_ = 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.apimachinery.pkg.apis.meta.v1.MicroTime)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime)
    private static final io.kubernetes.client.proto.Meta.MicroTime DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.MicroTime();
    }

    public static io.kubernetes.client.proto.Meta.MicroTime getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.MicroTime getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ObjectMetaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta}
   */
  public  static final class ObjectMeta extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.ObjectMeta.class, io.kubernetes.client.proto.Meta.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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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.Meta.ObjectMeta)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.ObjectMeta other = (io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.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.Meta.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.Meta.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.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta)
        io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.ObjectMeta.class, io.kubernetes.client.proto.Meta.ObjectMeta.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_descriptor;
      }

      public io.kubernetes.client.proto.Meta.ObjectMeta getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.ObjectMeta buildPartial() {
        io.kubernetes.client.proto.Meta.ObjectMeta result = new io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta) {
          return mergeFrom((io.kubernetes.client.proto.Meta.ObjectMeta)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.ObjectMeta other) {
        if (other == io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/identifiers#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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/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.apimachinery.pkg.apis.meta.v1.ObjectMeta)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta)
    private static final io.kubernetes.client.proto.Meta.ObjectMeta DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.ObjectMeta();
    }

    public static io.kubernetes.client.proto.Meta.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.Meta.ObjectMeta getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OwnerReferenceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * API version of the referent.
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    boolean hasApiVersion();
    /**
     * <pre>
     * API version of the referent.
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    java.lang.String getApiVersion();
    /**
     * <pre>
     * API version of the referent.
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    com.google.protobuf.ByteString
        getApiVersionBytes();

    /**
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * </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
     * </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
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    com.google.protobuf.ByteString
        getKindBytes();

    /**
     * <pre>
     * Name of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#names
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    boolean hasName();
    /**
     * <pre>
     * Name of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#names
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * Name of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#names
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * UID of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    boolean hasUid();
    /**
     * <pre>
     * UID of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    java.lang.String getUid();
    /**
     * <pre>
     * UID of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    com.google.protobuf.ByteString
        getUidBytes();

    /**
     * <pre>
     * If true, this reference points to the managing controller.
     * +optional
     * </pre>
     *
     * <code>optional bool controller = 6;</code>
     */
    boolean hasController();
    /**
     * <pre>
     * If true, this reference points to the managing controller.
     * +optional
     * </pre>
     *
     * <code>optional bool controller = 6;</code>
     */
    boolean getController();

    /**
     * <pre>
     * If true, AND if the owner has the "foregroundDeletion" finalizer, then
     * the owner cannot be deleted from the key-value store until this
     * reference is removed.
     * Defaults to false.
     * To set this field, a user needs "delete" permission of the owner,
     * otherwise 422 (Unprocessable Entity) will be returned.
     * +optional
     * </pre>
     *
     * <code>optional bool blockOwnerDeletion = 7;</code>
     */
    boolean hasBlockOwnerDeletion();
    /**
     * <pre>
     * If true, AND if the owner has the "foregroundDeletion" finalizer, then
     * the owner cannot be deleted from the key-value store until this
     * reference is removed.
     * Defaults to false.
     * To set this field, a user needs "delete" permission of the owner,
     * otherwise 422 (Unprocessable Entity) will be returned.
     * +optional
     * </pre>
     *
     * <code>optional bool blockOwnerDeletion = 7;</code>
     */
    boolean getBlockOwnerDeletion();
  }
  /**
   * <pre>
   * OwnerReference contains enough information to let you identify an owning
   * object. Currently, an owning object must be in the same namespace, so there
   * is no namespace field.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference}
   */
  public  static final class OwnerReference extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference)
      OwnerReferenceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OwnerReference.newBuilder() to construct.
    private OwnerReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OwnerReference() {
      apiVersion_ = "";
      kind_ = "";
      name_ = "";
      uid_ = "";
      controller_ = false;
      blockOwnerDeletion_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OwnerReference(
        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_ |= 0x00000002;
              kind_ = 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_ |= 0x00000001;
              apiVersion_ = bs;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              controller_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              blockOwnerDeletion_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.OwnerReference.class, io.kubernetes.client.proto.Meta.OwnerReference.Builder.class);
    }

    private int bitField0_;
    public static final int APIVERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object apiVersion_;
    /**
     * <pre>
     * API version of the referent.
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    public boolean hasApiVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * API version of the referent.
     * </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.
     * </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 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
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * </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
     * </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 NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * Name of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#names
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * Name of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#names
     * </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: http://kubernetes.io/docs/user-guide/identifiers#names
     * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * UID of the referent.
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
     * </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 CONTROLLER_FIELD_NUMBER = 6;
    private boolean controller_;
    /**
     * <pre>
     * If true, this reference points to the managing controller.
     * +optional
     * </pre>
     *
     * <code>optional bool controller = 6;</code>
     */
    public boolean hasController() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * If true, this reference points to the managing controller.
     * +optional
     * </pre>
     *
     * <code>optional bool controller = 6;</code>
     */
    public boolean getController() {
      return controller_;
    }

    public static final int BLOCKOWNERDELETION_FIELD_NUMBER = 7;
    private boolean blockOwnerDeletion_;
    /**
     * <pre>
     * If true, AND if the owner has the "foregroundDeletion" finalizer, then
     * the owner cannot be deleted from the key-value store until this
     * reference is removed.
     * Defaults to false.
     * To set this field, a user needs "delete" permission of the owner,
     * otherwise 422 (Unprocessable Entity) will be returned.
     * +optional
     * </pre>
     *
     * <code>optional bool blockOwnerDeletion = 7;</code>
     */
    public boolean hasBlockOwnerDeletion() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     * If true, AND if the owner has the "foregroundDeletion" finalizer, then
     * the owner cannot be deleted from the key-value store until this
     * reference is removed.
     * Defaults to false.
     * To set this field, a user needs "delete" permission of the owner,
     * otherwise 422 (Unprocessable Entity) will be returned.
     * +optional
     * </pre>
     *
     * <code>optional bool blockOwnerDeletion = 7;</code>
     */
    public boolean getBlockOwnerDeletion() {
      return blockOwnerDeletion_;
    }

    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_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, kind_);
      }
      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_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, apiVersion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(6, controller_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(7, blockOwnerDeletion_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, kind_);
      }
      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_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, apiVersion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, controller_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, blockOwnerDeletion_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasApiVersion() == other.hasApiVersion());
      if (hasApiVersion()) {
        result = result && getApiVersion()
            .equals(other.getApiVersion());
      }
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind()
            .equals(other.getKind());
      }
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid()
            .equals(other.getUid());
      }
      result = result && (hasController() == other.hasController());
      if (hasController()) {
        result = result && (getController()
            == other.getController());
      }
      result = result && (hasBlockOwnerDeletion() == other.hasBlockOwnerDeletion());
      if (hasBlockOwnerDeletion()) {
        result = result && (getBlockOwnerDeletion()
            == other.getBlockOwnerDeletion());
      }
      result = result && unknownFields.equals(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 (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid().hashCode();
      }
      if (hasController()) {
        hash = (37 * hash) + CONTROLLER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getController());
      }
      if (hasBlockOwnerDeletion()) {
        hash = (37 * hash) + BLOCKOWNERDELETION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getBlockOwnerDeletion());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.OwnerReference 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.Meta.OwnerReference 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>
     * OwnerReference contains enough information to let you identify an owning
     * object. Currently, an owning object must be in the same namespace, so there
     * is no namespace field.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference)
        io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.OwnerReference.class, io.kubernetes.client.proto.Meta.OwnerReference.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.OwnerReference.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);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        controller_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        blockOwnerDeletion_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.OwnerReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.OwnerReference buildPartial() {
        io.kubernetes.client.proto.Meta.OwnerReference result = new io.kubernetes.client.proto.Meta.OwnerReference(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.kind_ = kind_;
        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.controller_ = controller_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.blockOwnerDeletion_ = blockOwnerDeletion_;
        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.Meta.OwnerReference) {
          return mergeFrom((io.kubernetes.client.proto.Meta.OwnerReference)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.OwnerReference other) {
        if (other == io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance()) return this;
        if (other.hasApiVersion()) {
          bitField0_ |= 0x00000001;
          apiVersion_ = other.apiVersion_;
          onChanged();
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000002;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000004;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasUid()) {
          bitField0_ |= 0x00000008;
          uid_ = other.uid_;
          onChanged();
        }
        if (other.hasController()) {
          setController(other.getController());
        }
        if (other.hasBlockOwnerDeletion()) {
          setBlockOwnerDeletion(other.getBlockOwnerDeletion());
        }
        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.Meta.OwnerReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.OwnerReference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object apiVersion_ = "";
      /**
       * <pre>
       * API version of the referent.
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public boolean hasApiVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * API version of the referent.
       * </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.
       * </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.
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public Builder setApiVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        apiVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * API version of the referent.
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public Builder clearApiVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        apiVersion_ = getDefaultInstance().getApiVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * API version of the referent.
       * </pre>
       *
       * <code>optional string apiVersion = 5;</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 kind_ = "";
      /**
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * </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
       * </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
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000002);
        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
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        kind_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * Name of the referent.
       * More info: http://kubernetes.io/docs/user-guide/identifiers#names
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Name of the referent.
       * More info: http://kubernetes.io/docs/user-guide/identifiers#names
       * </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: http://kubernetes.io/docs/user-guide/identifiers#names
       * </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: http://kubernetes.io/docs/user-guide/identifiers#names
       * </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: http://kubernetes.io/docs/user-guide/identifiers#names
       * </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: http://kubernetes.io/docs/user-guide/identifiers#names
       * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * UID of the referent.
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
       * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
       * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
       * </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: http://kubernetes.io/docs/user-guide/identifiers#uids
       * </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 boolean controller_ ;
      /**
       * <pre>
       * If true, this reference points to the managing controller.
       * +optional
       * </pre>
       *
       * <code>optional bool controller = 6;</code>
       */
      public boolean hasController() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * If true, this reference points to the managing controller.
       * +optional
       * </pre>
       *
       * <code>optional bool controller = 6;</code>
       */
      public boolean getController() {
        return controller_;
      }
      /**
       * <pre>
       * If true, this reference points to the managing controller.
       * +optional
       * </pre>
       *
       * <code>optional bool controller = 6;</code>
       */
      public Builder setController(boolean value) {
        bitField0_ |= 0x00000010;
        controller_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If true, this reference points to the managing controller.
       * +optional
       * </pre>
       *
       * <code>optional bool controller = 6;</code>
       */
      public Builder clearController() {
        bitField0_ = (bitField0_ & ~0x00000010);
        controller_ = false;
        onChanged();
        return this;
      }

      private boolean blockOwnerDeletion_ ;
      /**
       * <pre>
       * If true, AND if the owner has the "foregroundDeletion" finalizer, then
       * the owner cannot be deleted from the key-value store until this
       * reference is removed.
       * Defaults to false.
       * To set this field, a user needs "delete" permission of the owner,
       * otherwise 422 (Unprocessable Entity) will be returned.
       * +optional
       * </pre>
       *
       * <code>optional bool blockOwnerDeletion = 7;</code>
       */
      public boolean hasBlockOwnerDeletion() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       * If true, AND if the owner has the "foregroundDeletion" finalizer, then
       * the owner cannot be deleted from the key-value store until this
       * reference is removed.
       * Defaults to false.
       * To set this field, a user needs "delete" permission of the owner,
       * otherwise 422 (Unprocessable Entity) will be returned.
       * +optional
       * </pre>
       *
       * <code>optional bool blockOwnerDeletion = 7;</code>
       */
      public boolean getBlockOwnerDeletion() {
        return blockOwnerDeletion_;
      }
      /**
       * <pre>
       * If true, AND if the owner has the "foregroundDeletion" finalizer, then
       * the owner cannot be deleted from the key-value store until this
       * reference is removed.
       * Defaults to false.
       * To set this field, a user needs "delete" permission of the owner,
       * otherwise 422 (Unprocessable Entity) will be returned.
       * +optional
       * </pre>
       *
       * <code>optional bool blockOwnerDeletion = 7;</code>
       */
      public Builder setBlockOwnerDeletion(boolean value) {
        bitField0_ |= 0x00000020;
        blockOwnerDeletion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If true, AND if the owner has the "foregroundDeletion" finalizer, then
       * the owner cannot be deleted from the key-value store until this
       * reference is removed.
       * Defaults to false.
       * To set this field, a user needs "delete" permission of the owner,
       * otherwise 422 (Unprocessable Entity) will be returned.
       * +optional
       * </pre>
       *
       * <code>optional bool blockOwnerDeletion = 7;</code>
       */
      public Builder clearBlockOwnerDeletion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        blockOwnerDeletion_ = 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.apimachinery.pkg.apis.meta.v1.OwnerReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference)
    private static final io.kubernetes.client.proto.Meta.OwnerReference DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.OwnerReference();
    }

    public static io.kubernetes.client.proto.Meta.OwnerReference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.OwnerReference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PreconditionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.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.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions}
   */
  public  static final class Preconditions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Preconditions.class, io.kubernetes.client.proto.Meta.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.Meta.Preconditions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.Preconditions other = (io.kubernetes.client.proto.Meta.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.Meta.Preconditions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.Preconditions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.Preconditions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.Preconditions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.Preconditions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.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.Meta.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.Meta.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.Meta.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.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions)
        io.kubernetes.client.proto.Meta.PreconditionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Preconditions.class, io.kubernetes.client.proto.Meta.Preconditions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_descriptor;
      }

      public io.kubernetes.client.proto.Meta.Preconditions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Preconditions.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Preconditions buildPartial() {
        io.kubernetes.client.proto.Meta.Preconditions result = new io.kubernetes.client.proto.Meta.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.Meta.Preconditions) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Preconditions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Preconditions other) {
        if (other == io.kubernetes.client.proto.Meta.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.Meta.Preconditions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.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.apimachinery.pkg.apis.meta.v1.Preconditions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions)
    private static final io.kubernetes.client.proto.Meta.Preconditions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Preconditions();
    }

    public static io.kubernetes.client.proto.Meta.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.Meta.Preconditions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RootPathsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    java.util.List<java.lang.String>
        getPathsList();
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    int getPathsCount();
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    java.lang.String getPaths(int index);
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    com.google.protobuf.ByteString
        getPathsBytes(int index);
  }
  /**
   * <pre>
   * RootPaths lists the paths available at root.
   * For example: "/healthz", "/apis".
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths}
   */
  public  static final class RootPaths extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths)
      RootPathsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RootPaths.newBuilder() to construct.
    private RootPaths(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RootPaths() {
      paths_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RootPaths(
        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)) {
                paths_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              paths_.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)) {
          paths_ = paths_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.RootPaths.class, io.kubernetes.client.proto.Meta.RootPaths.Builder.class);
    }

    public static final int PATHS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList paths_;
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getPathsList() {
      return paths_;
    }
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    public int getPathsCount() {
      return paths_.size();
    }
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    public java.lang.String getPaths(int index) {
      return paths_.get(index);
    }
    /**
     * <pre>
     * paths are the paths available at root.
     * </pre>
     *
     * <code>repeated string paths = 1;</code>
     */
    public com.google.protobuf.ByteString
        getPathsBytes(int index) {
      return paths_.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 < paths_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, paths_.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 < paths_.size(); i++) {
          dataSize += computeStringSizeNoTag(paths_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPathsList().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.Meta.RootPaths)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.RootPaths other = (io.kubernetes.client.proto.Meta.RootPaths) obj;

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

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

    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.RootPaths 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.Meta.RootPaths 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>
     * RootPaths lists the paths available at root.
     * For example: "/healthz", "/apis".
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths)
        io.kubernetes.client.proto.Meta.RootPathsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.RootPaths.class, io.kubernetes.client.proto.Meta.RootPaths.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.RootPaths.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();
        paths_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.RootPaths getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.RootPaths.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.RootPaths buildPartial() {
        io.kubernetes.client.proto.Meta.RootPaths result = new io.kubernetes.client.proto.Meta.RootPaths(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          paths_ = paths_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.paths_ = paths_;
        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.Meta.RootPaths) {
          return mergeFrom((io.kubernetes.client.proto.Meta.RootPaths)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.RootPaths other) {
        if (other == io.kubernetes.client.proto.Meta.RootPaths.getDefaultInstance()) return this;
        if (!other.paths_.isEmpty()) {
          if (paths_.isEmpty()) {
            paths_ = other.paths_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePathsIsMutable();
            paths_.addAll(other.paths_);
          }
          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.Meta.RootPaths parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.RootPaths) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList paths_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePathsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          paths_ = new com.google.protobuf.LazyStringArrayList(paths_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getPathsList() {
        return paths_.getUnmodifiableView();
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public int getPathsCount() {
        return paths_.size();
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public java.lang.String getPaths(int index) {
        return paths_.get(index);
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPathsBytes(int index) {
        return paths_.getByteString(index);
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public Builder setPaths(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePathsIsMutable();
        paths_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public Builder addPaths(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePathsIsMutable();
        paths_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public Builder addAllPaths(
          java.lang.Iterable<java.lang.String> values) {
        ensurePathsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, paths_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public Builder clearPaths() {
        paths_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * paths are the paths available at root.
       * </pre>
       *
       * <code>repeated string paths = 1;</code>
       */
      public Builder addPathsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePathsIsMutable();
        paths_.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.apimachinery.pkg.apis.meta.v1.RootPaths)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths)
    private static final io.kubernetes.client.proto.Meta.RootPaths DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.RootPaths();
    }

    public static io.kubernetes.client.proto.Meta.RootPaths getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.RootPaths getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ServerAddressByClientCIDROrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The CIDR with which clients can match their IP to figure out the server address that they should use.
     * </pre>
     *
     * <code>optional string clientCIDR = 1;</code>
     */
    boolean hasClientCIDR();
    /**
     * <pre>
     * The CIDR with which clients can match their IP to figure out the server address that they should use.
     * </pre>
     *
     * <code>optional string clientCIDR = 1;</code>
     */
    java.lang.String getClientCIDR();
    /**
     * <pre>
     * The CIDR with which clients can match their IP to figure out the server address that they should use.
     * </pre>
     *
     * <code>optional string clientCIDR = 1;</code>
     */
    com.google.protobuf.ByteString
        getClientCIDRBytes();

    /**
     * <pre>
     * Address of this server, suitable for a client that matches the above CIDR.
     * This can be a hostname, hostname:port, IP or IP:port.
     * </pre>
     *
     * <code>optional string serverAddress = 2;</code>
     */
    boolean hasServerAddress();
    /**
     * <pre>
     * Address of this server, suitable for a client that matches the above CIDR.
     * This can be a hostname, hostname:port, IP or IP:port.
     * </pre>
     *
     * <code>optional string serverAddress = 2;</code>
     */
    java.lang.String getServerAddress();
    /**
     * <pre>
     * Address of this server, suitable for a client that matches the above CIDR.
     * This can be a hostname, hostname:port, IP or IP:port.
     * </pre>
     *
     * <code>optional string serverAddress = 2;</code>
     */
    com.google.protobuf.ByteString
        getServerAddressBytes();
  }
  /**
   * <pre>
   * ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR}
   */
  public  static final class ServerAddressByClientCIDR extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR)
      ServerAddressByClientCIDROrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ServerAddressByClientCIDR.newBuilder() to construct.
    private ServerAddressByClientCIDR(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ServerAddressByClientCIDR() {
      clientCIDR_ = "";
      serverAddress_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ServerAddressByClientCIDR(
        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;
              clientCIDR_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              serverAddress_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.class, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder.class);
    }

    private int bitField0_;
    public static final int CLIENTCIDR_FIELD_NUMBER = 1;
    private volatile java.lang.Object clientCIDR_;
    /**
     * <pre>
     * The CIDR with which clients can match their IP to figure out the server address that they should use.
     * </pre>
     *
     * <code>optional string clientCIDR = 1;</code>
     */
    public boolean hasClientCIDR() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * The CIDR with which clients can match their IP to figure out the server address that they should use.
     * </pre>
     *
     * <code>optional string clientCIDR = 1;</code>
     */
    public java.lang.String getClientCIDR() {
      java.lang.Object ref = clientCIDR_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientCIDR_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * The CIDR with which clients can match their IP to figure out the server address that they should use.
     * </pre>
     *
     * <code>optional string clientCIDR = 1;</code>
     */
    public com.google.protobuf.ByteString
        getClientCIDRBytes() {
      java.lang.Object ref = clientCIDR_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCIDR_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERVERADDRESS_FIELD_NUMBER = 2;
    private volatile java.lang.Object serverAddress_;
    /**
     * <pre>
     * Address of this server, suitable for a client that matches the above CIDR.
     * This can be a hostname, hostname:port, IP or IP:port.
     * </pre>
     *
     * <code>optional string serverAddress = 2;</code>
     */
    public boolean hasServerAddress() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Address of this server, suitable for a client that matches the above CIDR.
     * This can be a hostname, hostname:port, IP or IP:port.
     * </pre>
     *
     * <code>optional string serverAddress = 2;</code>
     */
    public java.lang.String getServerAddress() {
      java.lang.Object ref = serverAddress_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          serverAddress_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Address of this server, suitable for a client that matches the above CIDR.
     * This can be a hostname, hostname:port, IP or IP:port.
     * </pre>
     *
     * <code>optional string serverAddress = 2;</code>
     */
    public com.google.protobuf.ByteString
        getServerAddressBytes() {
      java.lang.Object ref = serverAddress_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serverAddress_ = 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, clientCIDR_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serverAddress_);
      }
      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, clientCIDR_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serverAddress_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasClientCIDR() == other.hasClientCIDR());
      if (hasClientCIDR()) {
        result = result && getClientCIDR()
            .equals(other.getClientCIDR());
      }
      result = result && (hasServerAddress() == other.hasServerAddress());
      if (hasServerAddress()) {
        result = result && getServerAddress()
            .equals(other.getServerAddress());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasClientCIDR()) {
        hash = (37 * hash) + CLIENTCIDR_FIELD_NUMBER;
        hash = (53 * hash) + getClientCIDR().hashCode();
      }
      if (hasServerAddress()) {
        hash = (37 * hash) + SERVERADDRESS_FIELD_NUMBER;
        hash = (53 * hash) + getServerAddress().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR 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.Meta.ServerAddressByClientCIDR 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>
     * ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR)
        io.kubernetes.client.proto.Meta.ServerAddressByClientCIDROrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.class, io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.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();
        clientCIDR_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        serverAddress_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR buildPartial() {
        io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR result = new io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clientCIDR_ = clientCIDR_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.serverAddress_ = serverAddress_;
        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.Meta.ServerAddressByClientCIDR) {
          return mergeFrom((io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR other) {
        if (other == io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR.getDefaultInstance()) return this;
        if (other.hasClientCIDR()) {
          bitField0_ |= 0x00000001;
          clientCIDR_ = other.clientCIDR_;
          onChanged();
        }
        if (other.hasServerAddress()) {
          bitField0_ |= 0x00000002;
          serverAddress_ = other.serverAddress_;
          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.Meta.ServerAddressByClientCIDR parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object clientCIDR_ = "";
      /**
       * <pre>
       * The CIDR with which clients can match their IP to figure out the server address that they should use.
       * </pre>
       *
       * <code>optional string clientCIDR = 1;</code>
       */
      public boolean hasClientCIDR() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The CIDR with which clients can match their IP to figure out the server address that they should use.
       * </pre>
       *
       * <code>optional string clientCIDR = 1;</code>
       */
      public java.lang.String getClientCIDR() {
        java.lang.Object ref = clientCIDR_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientCIDR_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The CIDR with which clients can match their IP to figure out the server address that they should use.
       * </pre>
       *
       * <code>optional string clientCIDR = 1;</code>
       */
      public com.google.protobuf.ByteString
          getClientCIDRBytes() {
        java.lang.Object ref = clientCIDR_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCIDR_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The CIDR with which clients can match their IP to figure out the server address that they should use.
       * </pre>
       *
       * <code>optional string clientCIDR = 1;</code>
       */
      public Builder setClientCIDR(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        clientCIDR_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The CIDR with which clients can match their IP to figure out the server address that they should use.
       * </pre>
       *
       * <code>optional string clientCIDR = 1;</code>
       */
      public Builder clearClientCIDR() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientCIDR_ = getDefaultInstance().getClientCIDR();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The CIDR with which clients can match their IP to figure out the server address that they should use.
       * </pre>
       *
       * <code>optional string clientCIDR = 1;</code>
       */
      public Builder setClientCIDRBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        clientCIDR_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object serverAddress_ = "";
      /**
       * <pre>
       * Address of this server, suitable for a client that matches the above CIDR.
       * This can be a hostname, hostname:port, IP or IP:port.
       * </pre>
       *
       * <code>optional string serverAddress = 2;</code>
       */
      public boolean hasServerAddress() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Address of this server, suitable for a client that matches the above CIDR.
       * This can be a hostname, hostname:port, IP or IP:port.
       * </pre>
       *
       * <code>optional string serverAddress = 2;</code>
       */
      public java.lang.String getServerAddress() {
        java.lang.Object ref = serverAddress_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serverAddress_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Address of this server, suitable for a client that matches the above CIDR.
       * This can be a hostname, hostname:port, IP or IP:port.
       * </pre>
       *
       * <code>optional string serverAddress = 2;</code>
       */
      public com.google.protobuf.ByteString
          getServerAddressBytes() {
        java.lang.Object ref = serverAddress_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serverAddress_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Address of this server, suitable for a client that matches the above CIDR.
       * This can be a hostname, hostname:port, IP or IP:port.
       * </pre>
       *
       * <code>optional string serverAddress = 2;</code>
       */
      public Builder setServerAddress(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        serverAddress_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Address of this server, suitable for a client that matches the above CIDR.
       * This can be a hostname, hostname:port, IP or IP:port.
       * </pre>
       *
       * <code>optional string serverAddress = 2;</code>
       */
      public Builder clearServerAddress() {
        bitField0_ = (bitField0_ & ~0x00000002);
        serverAddress_ = getDefaultInstance().getServerAddress();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Address of this server, suitable for a client that matches the above CIDR.
       * This can be a hostname, hostname:port, IP or IP:port.
       * </pre>
       *
       * <code>optional string serverAddress = 2;</code>
       */
      public Builder setServerAddressBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        serverAddress_ = 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.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR)
    private static final io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR();
    }

    public static io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.ServerAddressByClientCIDR getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Status)
      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>
     * Status of the operation.
     * One of: "Success" or "Failure".
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    boolean hasStatus();
    /**
     * <pre>
     * Status of the operation.
     * One of: "Success" or "Failure".
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    java.lang.String getStatus();
    /**
     * <pre>
     * Status of the operation.
     * One of: "Success" or "Failure".
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    com.google.protobuf.ByteString
        getStatusBytes();

    /**
     * <pre>
     * A human-readable description of the status of this operation.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    boolean hasMessage();
    /**
     * <pre>
     * A human-readable description of the status of this operation.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * A human-readable description of the status of this operation.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * <pre>
     * A machine-readable description of why this operation is in the
     * "Failure" status. If this value is empty there
     * is no information available. A Reason clarifies an HTTP status
     * code but does not override it.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    boolean hasReason();
    /**
     * <pre>
     * A machine-readable description of why this operation is in the
     * "Failure" status. If this value is empty there
     * is no information available. A Reason clarifies an HTTP status
     * code but does not override it.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    java.lang.String getReason();
    /**
     * <pre>
     * A machine-readable description of why this operation is in the
     * "Failure" status. If this value is empty there
     * is no information available. A Reason clarifies an HTTP status
     * code but does not override it.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    com.google.protobuf.ByteString
        getReasonBytes();

    /**
     * <pre>
     * Extended data associated with the reason.  Each reason may define its
     * own extended details. This field is optional and the data returned
     * is not guaranteed to conform to any schema except that defined by
     * the reason type.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
     */
    boolean hasDetails();
    /**
     * <pre>
     * Extended data associated with the reason.  Each reason may define its
     * own extended details. This field is optional and the data returned
     * is not guaranteed to conform to any schema except that defined by
     * the reason type.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
     */
    io.kubernetes.client.proto.Meta.StatusDetails getDetails();
    /**
     * <pre>
     * Extended data associated with the reason.  Each reason may define its
     * own extended details. This field is optional and the data returned
     * is not guaranteed to conform to any schema except that defined by
     * the reason type.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
     */
    io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder getDetailsOrBuilder();

    /**
     * <pre>
     * Suggested HTTP return code for this status, 0 if not set.
     * +optional
     * </pre>
     *
     * <code>optional int32 code = 6;</code>
     */
    boolean hasCode();
    /**
     * <pre>
     * Suggested HTTP return code for this status, 0 if not set.
     * +optional
     * </pre>
     *
     * <code>optional int32 code = 6;</code>
     */
    int getCode();
  }
  /**
   * <pre>
   * Status is a return value for calls that don't return other objects.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Status}
   */
  public  static final class Status extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Status)
      StatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Status.newBuilder() to construct.
    private Status(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Status() {
      status_ = "";
      message_ = "";
      reason_ = "";
      code_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Status(
        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: {
              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;
              reason_ = bs;
              break;
            }
            case 42: {
              io.kubernetes.client.proto.Meta.StatusDetails.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = details_.toBuilder();
              }
              details_ = input.readMessage(io.kubernetes.client.proto.Meta.StatusDetails.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(details_);
                details_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              code_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Status.class, io.kubernetes.client.proto.Meta.Status.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 STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /**
     * <pre>
     * Status of the operation.
     * One of: "Success" or "Failure".
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Status of the operation.
     * One of: "Success" or "Failure".
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </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 operation.
     * One of: "Success" or "Failure".
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </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>
     * A human-readable description of the status of this operation.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * A human-readable description of the status of this operation.
     * +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 description of the status of this operation.
     * +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 machine-readable description of why this operation is in the
     * "Failure" status. If this value is empty there
     * is no information available. A Reason clarifies an HTTP status
     * code but does not override it.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * A machine-readable description of why this operation is in the
     * "Failure" status. If this value is empty there
     * is no information available. A Reason clarifies an HTTP status
     * code but does not override it.
     * +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 machine-readable description of why this operation is in the
     * "Failure" status. If this value is empty there
     * is no information available. A Reason clarifies an HTTP status
     * code but does not override it.
     * +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 DETAILS_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.Meta.StatusDetails details_;
    /**
     * <pre>
     * Extended data associated with the reason.  Each reason may define its
     * own extended details. This field is optional and the data returned
     * is not guaranteed to conform to any schema except that defined by
     * the reason type.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
     */
    public boolean hasDetails() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * Extended data associated with the reason.  Each reason may define its
     * own extended details. This field is optional and the data returned
     * is not guaranteed to conform to any schema except that defined by
     * the reason type.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
     */
    public io.kubernetes.client.proto.Meta.StatusDetails getDetails() {
      return details_ == null ? io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance() : details_;
    }
    /**
     * <pre>
     * Extended data associated with the reason.  Each reason may define its
     * own extended details. This field is optional and the data returned
     * is not guaranteed to conform to any schema except that defined by
     * the reason type.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
     */
    public io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder getDetailsOrBuilder() {
      return details_ == null ? io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance() : details_;
    }

    public static final int CODE_FIELD_NUMBER = 6;
    private int code_;
    /**
     * <pre>
     * Suggested HTTP return code for this status, 0 if not set.
     * +optional
     * </pre>
     *
     * <code>optional int32 code = 6;</code>
     */
    public boolean hasCode() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     * Suggested HTTP return code for this status, 0 if not set.
     * +optional
     * </pre>
     *
     * <code>optional int32 code = 6;</code>
     */
    public int getCode() {
      return code_;
    }

    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, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getDetails());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, code_);
      }
      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, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getDetails());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, code_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.Meta.Status)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.Status other = (io.kubernetes.client.proto.Meta.Status) 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 && (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 && (hasDetails() == other.hasDetails());
      if (hasDetails()) {
        result = result && getDetails()
            .equals(other.getDetails());
      }
      result = result && (hasCode() == other.hasCode());
      if (hasCode()) {
        result = result && (getCode()
            == other.getCode());
      }
      result = result && unknownFields.equals(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();
      }
      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 (hasDetails()) {
        hash = (37 * hash) + DETAILS_FIELD_NUMBER;
        hash = (53 * hash) + getDetails().hashCode();
      }
      if (hasCode()) {
        hash = (37 * hash) + CODE_FIELD_NUMBER;
        hash = (53 * hash) + getCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Status parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Status parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Status parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Status 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.Meta.Status 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 is a return value for calls that don't return other objects.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Status}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Status)
        io.kubernetes.client.proto.Meta.StatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Status.class, io.kubernetes.client.proto.Meta.Status.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.Status.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();
          getDetailsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (detailsBuilder_ == null) {
          details_ = null;
        } else {
          detailsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        code_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.Status getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Status.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Status buildPartial() {
        io.kubernetes.client.proto.Meta.Status result = new io.kubernetes.client.proto.Meta.Status(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.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (detailsBuilder_ == null) {
          result.details_ = details_;
        } else {
          result.details_ = detailsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.code_ = code_;
        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.Meta.Status) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Status)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Status other) {
        if (other == io.kubernetes.client.proto.Meta.Status.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000004;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000008;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasDetails()) {
          mergeDetails(other.getDetails());
        }
        if (other.hasCode()) {
          setCode(other.getCode());
        }
        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.Meta.Status parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Status) 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.lang.Object status_ = "";
      /**
       * <pre>
       * Status of the operation.
       * One of: "Success" or "Failure".
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Status of the operation.
       * One of: "Success" or "Failure".
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </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 operation.
       * One of: "Success" or "Failure".
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </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 operation.
       * One of: "Success" or "Failure".
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </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 operation.
       * One of: "Success" or "Failure".
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Status of the operation.
       * One of: "Success" or "Failure".
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </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>
       * A human-readable description of the status of this operation.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * A human-readable description of the status of this operation.
       * +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 description of the status of this operation.
       * +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 description of the status of this operation.
       * +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 description of the status of this operation.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A human-readable description of the status of this operation.
       * +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 machine-readable description of why this operation is in the
       * "Failure" status. If this value is empty there
       * is no information available. A Reason clarifies an HTTP status
       * code but does not override it.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * A machine-readable description of why this operation is in the
       * "Failure" status. If this value is empty there
       * is no information available. A Reason clarifies an HTTP status
       * code but does not override it.
       * +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 machine-readable description of why this operation is in the
       * "Failure" status. If this value is empty there
       * is no information available. A Reason clarifies an HTTP status
       * code but does not override it.
       * +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 machine-readable description of why this operation is in the
       * "Failure" status. If this value is empty there
       * is no information available. A Reason clarifies an HTTP status
       * code but does not override it.
       * +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 machine-readable description of why this operation is in the
       * "Failure" status. If this value is empty there
       * is no information available. A Reason clarifies an HTTP status
       * code but does not override it.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A machine-readable description of why this operation is in the
       * "Failure" status. If this value is empty there
       * is no information available. A Reason clarifies an HTTP status
       * code but does not override it.
       * +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 io.kubernetes.client.proto.Meta.StatusDetails details_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.StatusDetails, io.kubernetes.client.proto.Meta.StatusDetails.Builder, io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder> detailsBuilder_;
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public boolean hasDetails() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusDetails getDetails() {
        if (detailsBuilder_ == null) {
          return details_ == null ? io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance() : details_;
        } else {
          return detailsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public Builder setDetails(io.kubernetes.client.proto.Meta.StatusDetails value) {
        if (detailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          details_ = value;
          onChanged();
        } else {
          detailsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public Builder setDetails(
          io.kubernetes.client.proto.Meta.StatusDetails.Builder builderForValue) {
        if (detailsBuilder_ == null) {
          details_ = builderForValue.build();
          onChanged();
        } else {
          detailsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public Builder mergeDetails(io.kubernetes.client.proto.Meta.StatusDetails value) {
        if (detailsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              details_ != null &&
              details_ != io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance()) {
            details_ =
              io.kubernetes.client.proto.Meta.StatusDetails.newBuilder(details_).mergeFrom(value).buildPartial();
          } else {
            details_ = value;
          }
          onChanged();
        } else {
          detailsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public Builder clearDetails() {
        if (detailsBuilder_ == null) {
          details_ = null;
          onChanged();
        } else {
          detailsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusDetails.Builder getDetailsBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getDetailsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder getDetailsOrBuilder() {
        if (detailsBuilder_ != null) {
          return detailsBuilder_.getMessageOrBuilder();
        } else {
          return details_ == null ?
              io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance() : details_;
        }
      }
      /**
       * <pre>
       * Extended data associated with the reason.  Each reason may define its
       * own extended details. This field is optional and the data returned
       * is not guaranteed to conform to any schema except that defined by
       * the reason type.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails details = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Meta.StatusDetails, io.kubernetes.client.proto.Meta.StatusDetails.Builder, io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder> 
          getDetailsFieldBuilder() {
        if (detailsBuilder_ == null) {
          detailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.StatusDetails, io.kubernetes.client.proto.Meta.StatusDetails.Builder, io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder>(
                  getDetails(),
                  getParentForChildren(),
                  isClean());
          details_ = null;
        }
        return detailsBuilder_;
      }

      private int code_ ;
      /**
       * <pre>
       * Suggested HTTP return code for this status, 0 if not set.
       * +optional
       * </pre>
       *
       * <code>optional int32 code = 6;</code>
       */
      public boolean hasCode() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       * Suggested HTTP return code for this status, 0 if not set.
       * +optional
       * </pre>
       *
       * <code>optional int32 code = 6;</code>
       */
      public int getCode() {
        return code_;
      }
      /**
       * <pre>
       * Suggested HTTP return code for this status, 0 if not set.
       * +optional
       * </pre>
       *
       * <code>optional int32 code = 6;</code>
       */
      public Builder setCode(int value) {
        bitField0_ |= 0x00000020;
        code_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Suggested HTTP return code for this status, 0 if not set.
       * +optional
       * </pre>
       *
       * <code>optional int32 code = 6;</code>
       */
      public Builder clearCode() {
        bitField0_ = (bitField0_ & ~0x00000020);
        code_ = 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.apimachinery.pkg.apis.meta.v1.Status)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Status)
    private static final io.kubernetes.client.proto.Meta.Status DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Status();
    }

    public static io.kubernetes.client.proto.Meta.Status getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Status getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StatusCauseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * A machine-readable description of the cause of the error. If this value is
     * empty there is no information available.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    boolean hasReason();
    /**
     * <pre>
     * A machine-readable description of the cause of the error. If this value is
     * empty there is no information available.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    java.lang.String getReason();
    /**
     * <pre>
     * A machine-readable description of the cause of the error. If this value is
     * empty there is no information available.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    com.google.protobuf.ByteString
        getReasonBytes();

    /**
     * <pre>
     * A human-readable description of the cause of the error.  This field may be
     * presented as-is to a reader.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    boolean hasMessage();
    /**
     * <pre>
     * A human-readable description of the cause of the error.  This field may be
     * presented as-is to a reader.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * A human-readable description of the cause of the error.  This field may be
     * presented as-is to a reader.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * <pre>
     * The field of the resource that has caused this error, as named by its JSON
     * serialization. May include dot and postfix notation for nested attributes.
     * Arrays are zero-indexed.  Fields may appear more than once in an array of
     * causes due to fields having multiple errors.
     * Optional.
     * 
     * Examples:
     *   "name" - the field "name" on the current resource
     *   "items[0].name" - the field "name" on the first array entry in "items"
     * +optional
     * </pre>
     *
     * <code>optional string field = 3;</code>
     */
    boolean hasField();
    /**
     * <pre>
     * The field of the resource that has caused this error, as named by its JSON
     * serialization. May include dot and postfix notation for nested attributes.
     * Arrays are zero-indexed.  Fields may appear more than once in an array of
     * causes due to fields having multiple errors.
     * Optional.
     * 
     * Examples:
     *   "name" - the field "name" on the current resource
     *   "items[0].name" - the field "name" on the first array entry in "items"
     * +optional
     * </pre>
     *
     * <code>optional string field = 3;</code>
     */
    java.lang.String getField();
    /**
     * <pre>
     * The field of the resource that has caused this error, as named by its JSON
     * serialization. May include dot and postfix notation for nested attributes.
     * Arrays are zero-indexed.  Fields may appear more than once in an array of
     * causes due to fields having multiple errors.
     * Optional.
     * 
     * Examples:
     *   "name" - the field "name" on the current resource
     *   "items[0].name" - the field "name" on the first array entry in "items"
     * +optional
     * </pre>
     *
     * <code>optional string field = 3;</code>
     */
    com.google.protobuf.ByteString
        getFieldBytes();
  }
  /**
   * <pre>
   * StatusCause provides more information about an api.Status failure, including
   * cases when multiple errors are encountered.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause}
   */
  public  static final class StatusCause extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause)
      StatusCauseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StatusCause.newBuilder() to construct.
    private StatusCause(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StatusCause() {
      reason_ = "";
      message_ = "";
      field_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StatusCause(
        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;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              field_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.StatusCause.class, io.kubernetes.client.proto.Meta.StatusCause.Builder.class);
    }

    private int bitField0_;
    public static final int REASON_FIELD_NUMBER = 1;
    private volatile java.lang.Object reason_;
    /**
     * <pre>
     * A machine-readable description of the cause of the error. If this value is
     * empty there is no information available.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * A machine-readable description of the cause of the error. If this value is
     * empty there is no information available.
     * +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>
     * A machine-readable description of the cause of the error. If this value is
     * empty there is no information available.
     * +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>
     * A human-readable description of the cause of the error.  This field may be
     * presented as-is to a reader.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * A human-readable description of the cause of the error.  This field may be
     * presented as-is to a reader.
     * +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 description of the cause of the error.  This field may be
     * presented as-is to a reader.
     * +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 FIELD_FIELD_NUMBER = 3;
    private volatile java.lang.Object field_;
    /**
     * <pre>
     * The field of the resource that has caused this error, as named by its JSON
     * serialization. May include dot and postfix notation for nested attributes.
     * Arrays are zero-indexed.  Fields may appear more than once in an array of
     * causes due to fields having multiple errors.
     * Optional.
     * 
     * Examples:
     *   "name" - the field "name" on the current resource
     *   "items[0].name" - the field "name" on the first array entry in "items"
     * +optional
     * </pre>
     *
     * <code>optional string field = 3;</code>
     */
    public boolean hasField() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * The field of the resource that has caused this error, as named by its JSON
     * serialization. May include dot and postfix notation for nested attributes.
     * Arrays are zero-indexed.  Fields may appear more than once in an array of
     * causes due to fields having multiple errors.
     * Optional.
     * 
     * Examples:
     *   "name" - the field "name" on the current resource
     *   "items[0].name" - the field "name" on the first array entry in "items"
     * +optional
     * </pre>
     *
     * <code>optional string field = 3;</code>
     */
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          field_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * The field of the resource that has caused this error, as named by its JSON
     * serialization. May include dot and postfix notation for nested attributes.
     * Arrays are zero-indexed.  Fields may appear more than once in an array of
     * causes due to fields having multiple errors.
     * Optional.
     * 
     * Examples:
     *   "name" - the field "name" on the current resource
     *   "items[0].name" - the field "name" on the first array entry in "items"
     * +optional
     * </pre>
     *
     * <code>optional string field = 3;</code>
     */
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = 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_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, field_);
      }
      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_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, field_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.Meta.StatusCause)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.StatusCause other = (io.kubernetes.client.proto.Meta.StatusCause) 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 && (hasField() == other.hasField());
      if (hasField()) {
        result = result && getField()
            .equals(other.getField());
      }
      result = result && unknownFields.equals(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();
      }
      if (hasField()) {
        hash = (37 * hash) + FIELD_FIELD_NUMBER;
        hash = (53 * hash) + getField().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.StatusCause 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.Meta.StatusCause 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>
     * StatusCause provides more information about an api.Status failure, including
     * cases when multiple errors are encountered.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause)
        io.kubernetes.client.proto.Meta.StatusCauseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.StatusCause.class, io.kubernetes.client.proto.Meta.StatusCause.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.StatusCause.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);
        field_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.StatusCause getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.StatusCause.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.StatusCause buildPartial() {
        io.kubernetes.client.proto.Meta.StatusCause result = new io.kubernetes.client.proto.Meta.StatusCause(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_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.field_ = field_;
        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.Meta.StatusCause) {
          return mergeFrom((io.kubernetes.client.proto.Meta.StatusCause)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.StatusCause other) {
        if (other == io.kubernetes.client.proto.Meta.StatusCause.getDefaultInstance()) return this;
        if (other.hasReason()) {
          bitField0_ |= 0x00000001;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000002;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasField()) {
          bitField0_ |= 0x00000004;
          field_ = other.field_;
          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.Meta.StatusCause parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.StatusCause) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object reason_ = "";
      /**
       * <pre>
       * A machine-readable description of the cause of the error. If this value is
       * empty there is no information available.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * A machine-readable description of the cause of the error. If this value is
       * empty there is no information available.
       * +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>
       * A machine-readable description of the cause of the error. If this value is
       * empty there is no information available.
       * +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>
       * A machine-readable description of the cause of the error. If this value is
       * empty there is no information available.
       * +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>
       * A machine-readable description of the cause of the error. If this value is
       * empty there is no information available.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A machine-readable description of the cause of the error. If this value is
       * empty there is no information available.
       * +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>
       * A human-readable description of the cause of the error.  This field may be
       * presented as-is to a reader.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * A human-readable description of the cause of the error.  This field may be
       * presented as-is to a reader.
       * +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 description of the cause of the error.  This field may be
       * presented as-is to a reader.
       * +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 description of the cause of the error.  This field may be
       * presented as-is to a reader.
       * +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 description of the cause of the error.  This field may be
       * presented as-is to a reader.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A human-readable description of the cause of the error.  This field may be
       * presented as-is to a reader.
       * +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 field_ = "";
      /**
       * <pre>
       * The field of the resource that has caused this error, as named by its JSON
       * serialization. May include dot and postfix notation for nested attributes.
       * Arrays are zero-indexed.  Fields may appear more than once in an array of
       * causes due to fields having multiple errors.
       * Optional.
       * 
       * Examples:
       *   "name" - the field "name" on the current resource
       *   "items[0].name" - the field "name" on the first array entry in "items"
       * +optional
       * </pre>
       *
       * <code>optional string field = 3;</code>
       */
      public boolean hasField() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * The field of the resource that has caused this error, as named by its JSON
       * serialization. May include dot and postfix notation for nested attributes.
       * Arrays are zero-indexed.  Fields may appear more than once in an array of
       * causes due to fields having multiple errors.
       * Optional.
       * 
       * Examples:
       *   "name" - the field "name" on the current resource
       *   "items[0].name" - the field "name" on the first array entry in "items"
       * +optional
       * </pre>
       *
       * <code>optional string field = 3;</code>
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            field_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The field of the resource that has caused this error, as named by its JSON
       * serialization. May include dot and postfix notation for nested attributes.
       * Arrays are zero-indexed.  Fields may appear more than once in an array of
       * causes due to fields having multiple errors.
       * Optional.
       * 
       * Examples:
       *   "name" - the field "name" on the current resource
       *   "items[0].name" - the field "name" on the first array entry in "items"
       * +optional
       * </pre>
       *
       * <code>optional string field = 3;</code>
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The field of the resource that has caused this error, as named by its JSON
       * serialization. May include dot and postfix notation for nested attributes.
       * Arrays are zero-indexed.  Fields may appear more than once in an array of
       * causes due to fields having multiple errors.
       * Optional.
       * 
       * Examples:
       *   "name" - the field "name" on the current resource
       *   "items[0].name" - the field "name" on the first array entry in "items"
       * +optional
       * </pre>
       *
       * <code>optional string field = 3;</code>
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        field_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The field of the resource that has caused this error, as named by its JSON
       * serialization. May include dot and postfix notation for nested attributes.
       * Arrays are zero-indexed.  Fields may appear more than once in an array of
       * causes due to fields having multiple errors.
       * Optional.
       * 
       * Examples:
       *   "name" - the field "name" on the current resource
       *   "items[0].name" - the field "name" on the first array entry in "items"
       * +optional
       * </pre>
       *
       * <code>optional string field = 3;</code>
       */
      public Builder clearField() {
        bitField0_ = (bitField0_ & ~0x00000004);
        field_ = getDefaultInstance().getField();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The field of the resource that has caused this error, as named by its JSON
       * serialization. May include dot and postfix notation for nested attributes.
       * Arrays are zero-indexed.  Fields may appear more than once in an array of
       * causes due to fields having multiple errors.
       * Optional.
       * 
       * Examples:
       *   "name" - the field "name" on the current resource
       *   "items[0].name" - the field "name" on the first array entry in "items"
       * +optional
       * </pre>
       *
       * <code>optional string field = 3;</code>
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        field_ = 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.apimachinery.pkg.apis.meta.v1.StatusCause)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause)
    private static final io.kubernetes.client.proto.Meta.StatusCause DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.StatusCause();
    }

    public static io.kubernetes.client.proto.Meta.StatusCause getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.StatusCause getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StatusDetailsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The name attribute of the resource associated with the status StatusReason
     * (when there is a single name which can be described).
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     * <pre>
     * The name attribute of the resource associated with the status StatusReason
     * (when there is a single name which can be described).
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * The name attribute of the resource associated with the status StatusReason
     * (when there is a single name which can be described).
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * The group attribute of the resource associated with the status StatusReason.
     * +optional
     * </pre>
     *
     * <code>optional string group = 2;</code>
     */
    boolean hasGroup();
    /**
     * <pre>
     * The group attribute of the resource associated with the status StatusReason.
     * +optional
     * </pre>
     *
     * <code>optional string group = 2;</code>
     */
    java.lang.String getGroup();
    /**
     * <pre>
     * The group attribute of the resource associated with the status StatusReason.
     * +optional
     * </pre>
     *
     * <code>optional string group = 2;</code>
     */
    com.google.protobuf.ByteString
        getGroupBytes();

    /**
     * <pre>
     * The kind attribute of the resource associated with the status StatusReason.
     * On some operations may differ from the requested resource Kind.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    boolean hasKind();
    /**
     * <pre>
     * The kind attribute of the resource associated with the status StatusReason.
     * On some operations may differ from the requested resource Kind.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    java.lang.String getKind();
    /**
     * <pre>
     * The kind attribute of the resource associated with the status StatusReason.
     * On some operations may differ from the requested resource Kind.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    com.google.protobuf.ByteString
        getKindBytes();

    /**
     * <pre>
     * UID of the resource.
     * (when there is a single resource which can be described).
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 6;</code>
     */
    boolean hasUid();
    /**
     * <pre>
     * UID of the resource.
     * (when there is a single resource which can be described).
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 6;</code>
     */
    java.lang.String getUid();
    /**
     * <pre>
     * UID of the resource.
     * (when there is a single resource which can be described).
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 6;</code>
     */
    com.google.protobuf.ByteString
        getUidBytes();

    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    java.util.List<io.kubernetes.client.proto.Meta.StatusCause> 
        getCausesList();
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    io.kubernetes.client.proto.Meta.StatusCause getCauses(int index);
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    int getCausesCount();
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Meta.StatusCauseOrBuilder> 
        getCausesOrBuilderList();
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    io.kubernetes.client.proto.Meta.StatusCauseOrBuilder getCausesOrBuilder(
        int index);

    /**
     * <pre>
     * If specified, the time in seconds before the operation should be retried.
     * +optional
     * </pre>
     *
     * <code>optional int32 retryAfterSeconds = 5;</code>
     */
    boolean hasRetryAfterSeconds();
    /**
     * <pre>
     * If specified, the time in seconds before the operation should be retried.
     * +optional
     * </pre>
     *
     * <code>optional int32 retryAfterSeconds = 5;</code>
     */
    int getRetryAfterSeconds();
  }
  /**
   * <pre>
   * StatusDetails is a set of additional properties that MAY be set by the
   * server to provide additional information about a response. The Reason
   * field of a Status object defines what attributes will be set. Clients
   * must ignore fields that do not match the defined type of each attribute,
   * and should assume that any attribute may be empty, invalid, or under
   * defined.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails}
   */
  public  static final class StatusDetails extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails)
      StatusDetailsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StatusDetails.newBuilder() to construct.
    private StatusDetails(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StatusDetails() {
      name_ = "";
      group_ = "";
      kind_ = "";
      uid_ = "";
      causes_ = java.util.Collections.emptyList();
      retryAfterSeconds_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StatusDetails(
        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;
              group_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              kind_ = bs;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                causes_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.StatusCause>();
                mutable_bitField0_ |= 0x00000010;
              }
              causes_.add(
                  input.readMessage(io.kubernetes.client.proto.Meta.StatusCause.PARSER, extensionRegistry));
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              retryAfterSeconds_ = input.readInt32();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              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 {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          causes_ = java.util.Collections.unmodifiableList(causes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.StatusDetails.class, io.kubernetes.client.proto.Meta.StatusDetails.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * The name attribute of the resource associated with the status StatusReason
     * (when there is a single name which can be described).
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * The name attribute of the resource associated with the status StatusReason
     * (when there is a single name which can be described).
     * +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 attribute of the resource associated with the status StatusReason
     * (when there is a single name which can be described).
     * +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 GROUP_FIELD_NUMBER = 2;
    private volatile java.lang.Object group_;
    /**
     * <pre>
     * The group attribute of the resource associated with the status StatusReason.
     * +optional
     * </pre>
     *
     * <code>optional string group = 2;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * The group attribute of the resource associated with the status StatusReason.
     * +optional
     * </pre>
     *
     * <code>optional string group = 2;</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>
     * The group attribute of the resource associated with the status StatusReason.
     * +optional
     * </pre>
     *
     * <code>optional string group = 2;</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;
      }
    }

    public static final int KIND_FIELD_NUMBER = 3;
    private volatile java.lang.Object kind_;
    /**
     * <pre>
     * The kind attribute of the resource associated with the status StatusReason.
     * On some operations may differ from the requested resource Kind.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 3;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     * The kind attribute of the resource associated with the status StatusReason.
     * On some operations may differ from the requested resource Kind.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 3;</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>
     * The kind attribute of the resource associated with the status StatusReason.
     * On some operations may differ from the requested resource Kind.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 3;</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 UID_FIELD_NUMBER = 6;
    private volatile java.lang.Object uid_;
    /**
     * <pre>
     * UID of the resource.
     * (when there is a single resource which can be described).
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 6;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     * UID of the resource.
     * (when there is a single resource which can be described).
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 6;</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 resource.
     * (when there is a single resource which can be described).
     * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 6;</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 CAUSES_FIELD_NUMBER = 4;
    private java.util.List<io.kubernetes.client.proto.Meta.StatusCause> causes_;
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Meta.StatusCause> getCausesList() {
      return causes_;
    }
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Meta.StatusCauseOrBuilder> 
        getCausesOrBuilderList() {
      return causes_;
    }
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    public int getCausesCount() {
      return causes_.size();
    }
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.StatusCause getCauses(int index) {
      return causes_.get(index);
    }
    /**
     * <pre>
     * The Causes array includes more details associated with the StatusReason
     * failure. Not all StatusReasons may provide detailed causes.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.StatusCauseOrBuilder getCausesOrBuilder(
        int index) {
      return causes_.get(index);
    }

    public static final int RETRYAFTERSECONDS_FIELD_NUMBER = 5;
    private int retryAfterSeconds_;
    /**
     * <pre>
     * If specified, the time in seconds before the operation should be retried.
     * +optional
     * </pre>
     *
     * <code>optional int32 retryAfterSeconds = 5;</code>
     */
    public boolean hasRetryAfterSeconds() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     * If specified, the time in seconds before the operation should be retried.
     * +optional
     * </pre>
     *
     * <code>optional int32 retryAfterSeconds = 5;</code>
     */
    public int getRetryAfterSeconds() {
      return retryAfterSeconds_;
    }

    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, group_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, kind_);
      }
      for (int i = 0; i < causes_.size(); i++) {
        output.writeMessage(4, causes_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, retryAfterSeconds_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, 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, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, group_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, kind_);
      }
      for (int i = 0; i < causes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, causes_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, retryAfterSeconds_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, 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.Meta.StatusDetails)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.StatusDetails other = (io.kubernetes.client.proto.Meta.StatusDetails) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName()
            .equals(other.getName());
      }
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup()
            .equals(other.getGroup());
      }
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind()
            .equals(other.getKind());
      }
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid()
            .equals(other.getUid());
      }
      result = result && getCausesList()
          .equals(other.getCausesList());
      result = result && (hasRetryAfterSeconds() == other.hasRetryAfterSeconds());
      if (hasRetryAfterSeconds()) {
        result = result && (getRetryAfterSeconds()
            == other.getRetryAfterSeconds());
      }
      result = result && unknownFields.equals(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 (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      if (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      if (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid().hashCode();
      }
      if (getCausesCount() > 0) {
        hash = (37 * hash) + CAUSES_FIELD_NUMBER;
        hash = (53 * hash) + getCausesList().hashCode();
      }
      if (hasRetryAfterSeconds()) {
        hash = (37 * hash) + RETRYAFTERSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getRetryAfterSeconds();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.StatusDetails 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.Meta.StatusDetails 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>
     * StatusDetails is a set of additional properties that MAY be set by the
     * server to provide additional information about a response. The Reason
     * field of a Status object defines what attributes will be set. Clients
     * must ignore fields that do not match the defined type of each attribute,
     * and should assume that any attribute may be empty, invalid, or under
     * defined.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails)
        io.kubernetes.client.proto.Meta.StatusDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.StatusDetails.class, io.kubernetes.client.proto.Meta.StatusDetails.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCausesFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (causesBuilder_ == null) {
          causes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          causesBuilder_.clear();
        }
        retryAfterSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.StatusDetails getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.StatusDetails buildPartial() {
        io.kubernetes.client.proto.Meta.StatusDetails result = new io.kubernetes.client.proto.Meta.StatusDetails(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.group_ = group_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.kind_ = kind_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.uid_ = uid_;
        if (causesBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            causes_ = java.util.Collections.unmodifiableList(causes_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.causes_ = causes_;
        } else {
          result.causes_ = causesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.retryAfterSeconds_ = retryAfterSeconds_;
        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.Meta.StatusDetails) {
          return mergeFrom((io.kubernetes.client.proto.Meta.StatusDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.StatusDetails other) {
        if (other == io.kubernetes.client.proto.Meta.StatusDetails.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasGroup()) {
          bitField0_ |= 0x00000002;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000004;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasUid()) {
          bitField0_ |= 0x00000008;
          uid_ = other.uid_;
          onChanged();
        }
        if (causesBuilder_ == null) {
          if (!other.causes_.isEmpty()) {
            if (causes_.isEmpty()) {
              causes_ = other.causes_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureCausesIsMutable();
              causes_.addAll(other.causes_);
            }
            onChanged();
          }
        } else {
          if (!other.causes_.isEmpty()) {
            if (causesBuilder_.isEmpty()) {
              causesBuilder_.dispose();
              causesBuilder_ = null;
              causes_ = other.causes_;
              bitField0_ = (bitField0_ & ~0x00000010);
              causesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCausesFieldBuilder() : null;
            } else {
              causesBuilder_.addAllMessages(other.causes_);
            }
          }
        }
        if (other.hasRetryAfterSeconds()) {
          setRetryAfterSeconds(other.getRetryAfterSeconds());
        }
        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.Meta.StatusDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.StatusDetails) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <pre>
       * The name attribute of the resource associated with the status StatusReason
       * (when there is a single name which can be described).
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The name attribute of the resource associated with the status StatusReason
       * (when there is a single name which can be described).
       * +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 attribute of the resource associated with the status StatusReason
       * (when there is a single name which can be described).
       * +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 attribute of the resource associated with the status StatusReason
       * (when there is a single name which can be described).
       * +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 attribute of the resource associated with the status StatusReason
       * (when there is a single name which can be described).
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The name attribute of the resource associated with the status StatusReason
       * (when there is a single name which can be described).
       * +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 group_ = "";
      /**
       * <pre>
       * The group attribute of the resource associated with the status StatusReason.
       * +optional
       * </pre>
       *
       * <code>optional string group = 2;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The group attribute of the resource associated with the status StatusReason.
       * +optional
       * </pre>
       *
       * <code>optional string group = 2;</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>
       * The group attribute of the resource associated with the status StatusReason.
       * +optional
       * </pre>
       *
       * <code>optional string group = 2;</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>
       * The group attribute of the resource associated with the status StatusReason.
       * +optional
       * </pre>
       *
       * <code>optional string group = 2;</code>
       */
      public Builder setGroup(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The group attribute of the resource associated with the status StatusReason.
       * +optional
       * </pre>
       *
       * <code>optional string group = 2;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000002);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The group attribute of the resource associated with the status StatusReason.
       * +optional
       * </pre>
       *
       * <code>optional string group = 2;</code>
       */
      public Builder setGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        group_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * <pre>
       * The kind attribute of the resource associated with the status StatusReason.
       * On some operations may differ from the requested resource Kind.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * The kind attribute of the resource associated with the status StatusReason.
       * On some operations may differ from the requested resource Kind.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 3;</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>
       * The kind attribute of the resource associated with the status StatusReason.
       * On some operations may differ from the requested resource Kind.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 3;</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>
       * The kind attribute of the resource associated with the status StatusReason.
       * On some operations may differ from the requested resource Kind.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The kind attribute of the resource associated with the status StatusReason.
       * On some operations may differ from the requested resource Kind.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000004);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The kind attribute of the resource associated with the status StatusReason.
       * On some operations may differ from the requested resource Kind.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 3;</code>
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        kind_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object uid_ = "";
      /**
       * <pre>
       * UID of the resource.
       * (when there is a single resource which can be described).
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 6;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * UID of the resource.
       * (when there is a single resource which can be described).
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 6;</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 resource.
       * (when there is a single resource which can be described).
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 6;</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 resource.
       * (when there is a single resource which can be described).
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 6;</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 resource.
       * (when there is a single resource which can be described).
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 6;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * UID of the resource.
       * (when there is a single resource which can be described).
       * More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 6;</code>
       */
      public Builder setUidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        uid_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.Meta.StatusCause> causes_ =
        java.util.Collections.emptyList();
      private void ensureCausesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          causes_ = new java.util.ArrayList<io.kubernetes.client.proto.Meta.StatusCause>(causes_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.StatusCause, io.kubernetes.client.proto.Meta.StatusCause.Builder, io.kubernetes.client.proto.Meta.StatusCauseOrBuilder> causesBuilder_;

      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.StatusCause> getCausesList() {
        if (causesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(causes_);
        } else {
          return causesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public int getCausesCount() {
        if (causesBuilder_ == null) {
          return causes_.size();
        } else {
          return causesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusCause getCauses(int index) {
        if (causesBuilder_ == null) {
          return causes_.get(index);
        } else {
          return causesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder setCauses(
          int index, io.kubernetes.client.proto.Meta.StatusCause value) {
        if (causesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCausesIsMutable();
          causes_.set(index, value);
          onChanged();
        } else {
          causesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder setCauses(
          int index, io.kubernetes.client.proto.Meta.StatusCause.Builder builderForValue) {
        if (causesBuilder_ == null) {
          ensureCausesIsMutable();
          causes_.set(index, builderForValue.build());
          onChanged();
        } else {
          causesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder addCauses(io.kubernetes.client.proto.Meta.StatusCause value) {
        if (causesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCausesIsMutable();
          causes_.add(value);
          onChanged();
        } else {
          causesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder addCauses(
          int index, io.kubernetes.client.proto.Meta.StatusCause value) {
        if (causesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCausesIsMutable();
          causes_.add(index, value);
          onChanged();
        } else {
          causesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder addCauses(
          io.kubernetes.client.proto.Meta.StatusCause.Builder builderForValue) {
        if (causesBuilder_ == null) {
          ensureCausesIsMutable();
          causes_.add(builderForValue.build());
          onChanged();
        } else {
          causesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder addCauses(
          int index, io.kubernetes.client.proto.Meta.StatusCause.Builder builderForValue) {
        if (causesBuilder_ == null) {
          ensureCausesIsMutable();
          causes_.add(index, builderForValue.build());
          onChanged();
        } else {
          causesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder addAllCauses(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Meta.StatusCause> values) {
        if (causesBuilder_ == null) {
          ensureCausesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, causes_);
          onChanged();
        } else {
          causesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder clearCauses() {
        if (causesBuilder_ == null) {
          causes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          causesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public Builder removeCauses(int index) {
        if (causesBuilder_ == null) {
          ensureCausesIsMutable();
          causes_.remove(index);
          onChanged();
        } else {
          causesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusCause.Builder getCausesBuilder(
          int index) {
        return getCausesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusCauseOrBuilder getCausesOrBuilder(
          int index) {
        if (causesBuilder_ == null) {
          return causes_.get(index);  } else {
          return causesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Meta.StatusCauseOrBuilder> 
           getCausesOrBuilderList() {
        if (causesBuilder_ != null) {
          return causesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(causes_);
        }
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusCause.Builder addCausesBuilder() {
        return getCausesFieldBuilder().addBuilder(
            io.kubernetes.client.proto.Meta.StatusCause.getDefaultInstance());
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.StatusCause.Builder addCausesBuilder(
          int index) {
        return getCausesFieldBuilder().addBuilder(
            index, io.kubernetes.client.proto.Meta.StatusCause.getDefaultInstance());
      }
      /**
       * <pre>
       * The Causes array includes more details associated with the StatusReason
       * failure. Not all StatusReasons may provide detailed causes.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause causes = 4;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Meta.StatusCause.Builder> 
           getCausesBuilderList() {
        return getCausesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.kubernetes.client.proto.Meta.StatusCause, io.kubernetes.client.proto.Meta.StatusCause.Builder, io.kubernetes.client.proto.Meta.StatusCauseOrBuilder> 
          getCausesFieldBuilder() {
        if (causesBuilder_ == null) {
          causesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Meta.StatusCause, io.kubernetes.client.proto.Meta.StatusCause.Builder, io.kubernetes.client.proto.Meta.StatusCauseOrBuilder>(
                  causes_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          causes_ = null;
        }
        return causesBuilder_;
      }

      private int retryAfterSeconds_ ;
      /**
       * <pre>
       * If specified, the time in seconds before the operation should be retried.
       * +optional
       * </pre>
       *
       * <code>optional int32 retryAfterSeconds = 5;</code>
       */
      public boolean hasRetryAfterSeconds() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       * If specified, the time in seconds before the operation should be retried.
       * +optional
       * </pre>
       *
       * <code>optional int32 retryAfterSeconds = 5;</code>
       */
      public int getRetryAfterSeconds() {
        return retryAfterSeconds_;
      }
      /**
       * <pre>
       * If specified, the time in seconds before the operation should be retried.
       * +optional
       * </pre>
       *
       * <code>optional int32 retryAfterSeconds = 5;</code>
       */
      public Builder setRetryAfterSeconds(int value) {
        bitField0_ |= 0x00000020;
        retryAfterSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If specified, the time in seconds before the operation should be retried.
       * +optional
       * </pre>
       *
       * <code>optional int32 retryAfterSeconds = 5;</code>
       */
      public Builder clearRetryAfterSeconds() {
        bitField0_ = (bitField0_ & ~0x00000020);
        retryAfterSeconds_ = 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.apimachinery.pkg.apis.meta.v1.StatusDetails)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails)
    private static final io.kubernetes.client.proto.Meta.StatusDetails DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.StatusDetails();
    }

    public static io.kubernetes.client.proto.Meta.StatusDetails getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.StatusDetails getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TimeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Time)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    boolean hasSeconds();
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    long getSeconds();

    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    boolean hasNanos();
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    int getNanos();
  }
  /**
   * <pre>
   * Time is a wrapper around time.Time which supports correct
   * marshaling to YAML and JSON.  Wrappers are provided for many
   * of the factory methods that the time package offers.
   * 
   * +protobuf.options.marshal=false
   * +protobuf.as=Timestamp
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Time}
   */
  public  static final class Time extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Time)
      TimeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Time.newBuilder() to construct.
    private Time(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Time() {
      seconds_ = 0L;
      nanos_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Time(
        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;
              seconds_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              nanos_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Time.class, io.kubernetes.client.proto.Meta.Time.Builder.class);
    }

    private int bitField0_;
    public static final int SECONDS_FIELD_NUMBER = 1;
    private long seconds_;
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    public long getSeconds() {
      return seconds_;
    }

    public static final int NANOS_FIELD_NUMBER = 2;
    private int nanos_;
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    public boolean hasNanos() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    public int getNanos() {
      return nanos_;
    }

    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, seconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, nanos_);
      }
      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, seconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, nanos_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasSeconds() == other.hasSeconds());
      if (hasSeconds()) {
        result = result && (getSeconds()
            == other.getSeconds());
      }
      result = result && (hasNanos() == other.hasNanos());
      if (hasNanos()) {
        result = result && (getNanos()
            == other.getNanos());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSeconds()) {
        hash = (37 * hash) + SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSeconds());
      }
      if (hasNanos()) {
        hash = (37 * hash) + NANOS_FIELD_NUMBER;
        hash = (53 * hash) + getNanos();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Time parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Time parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Time parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Time 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.Meta.Time 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>
     * Time is a wrapper around time.Time which supports correct
     * marshaling to YAML and JSON.  Wrappers are provided for many
     * of the factory methods that the time package offers.
     * 
     * +protobuf.options.marshal=false
     * +protobuf.as=Timestamp
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Time}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Time)
        io.kubernetes.client.proto.Meta.TimeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Time.class, io.kubernetes.client.proto.Meta.Time.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.Time.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();
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        nanos_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.Time getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Time.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Time buildPartial() {
        io.kubernetes.client.proto.Meta.Time result = new io.kubernetes.client.proto.Meta.Time(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seconds_ = seconds_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.nanos_ = nanos_;
        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.Meta.Time) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Time)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Time other) {
        if (other == io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) return this;
        if (other.hasSeconds()) {
          setSeconds(other.getSeconds());
        }
        if (other.hasNanos()) {
          setNanos(other.getNanos());
        }
        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.Meta.Time parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Time) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long seconds_ ;
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000001;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seconds_ = 0L;
        onChanged();
        return this;
      }

      private int nanos_ ;
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public boolean hasNanos() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public int getNanos() {
        return nanos_;
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public Builder setNanos(int value) {
        bitField0_ |= 0x00000002;
        nanos_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public Builder clearNanos() {
        bitField0_ = (bitField0_ & ~0x00000002);
        nanos_ = 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.apimachinery.pkg.apis.meta.v1.Time)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Time)
    private static final io.kubernetes.client.proto.Meta.Time DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Time();
    }

    public static io.kubernetes.client.proto.Meta.Time getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Time getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TimestampOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    boolean hasSeconds();
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    long getSeconds();

    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    boolean hasNanos();
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    int getNanos();
  }
  /**
   * <pre>
   * Timestamp is a struct that is equivalent to Time, but intended for
   * protobuf marshalling/unmarshalling. It is generated into a serialization
   * that matches Time. Do not use in Go structs.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp}
   */
  public  static final class Timestamp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp)
      TimestampOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Timestamp.newBuilder() to construct.
    private Timestamp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Timestamp() {
      seconds_ = 0L;
      nanos_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Timestamp(
        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;
              seconds_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              nanos_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Timestamp.class, io.kubernetes.client.proto.Meta.Timestamp.Builder.class);
    }

    private int bitField0_;
    public static final int SECONDS_FIELD_NUMBER = 1;
    private long seconds_;
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     * </pre>
     *
     * <code>optional int64 seconds = 1;</code>
     */
    public long getSeconds() {
      return seconds_;
    }

    public static final int NANOS_FIELD_NUMBER = 2;
    private int nanos_;
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    public boolean hasNanos() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive. This field may be limited in precision depending on context.
     * </pre>
     *
     * <code>optional int32 nanos = 2;</code>
     */
    public int getNanos() {
      return nanos_;
    }

    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, seconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, nanos_);
      }
      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, seconds_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, nanos_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasSeconds() == other.hasSeconds());
      if (hasSeconds()) {
        result = result && (getSeconds()
            == other.getSeconds());
      }
      result = result && (hasNanos() == other.hasNanos());
      if (hasNanos()) {
        result = result && (getNanos()
            == other.getNanos());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSeconds()) {
        hash = (37 * hash) + SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSeconds());
      }
      if (hasNanos()) {
        hash = (37 * hash) + NANOS_FIELD_NUMBER;
        hash = (53 * hash) + getNanos();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Timestamp 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.Meta.Timestamp 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>
     * Timestamp is a struct that is equivalent to Time, but intended for
     * protobuf marshalling/unmarshalling. It is generated into a serialization
     * that matches Time. Do not use in Go structs.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp)
        io.kubernetes.client.proto.Meta.TimestampOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Timestamp.class, io.kubernetes.client.proto.Meta.Timestamp.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.Timestamp.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();
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        nanos_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.Timestamp getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Timestamp.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Timestamp buildPartial() {
        io.kubernetes.client.proto.Meta.Timestamp result = new io.kubernetes.client.proto.Meta.Timestamp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seconds_ = seconds_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.nanos_ = nanos_;
        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.Meta.Timestamp) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Timestamp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Timestamp other) {
        if (other == io.kubernetes.client.proto.Meta.Timestamp.getDefaultInstance()) return this;
        if (other.hasSeconds()) {
          setSeconds(other.getSeconds());
        }
        if (other.hasNanos()) {
          setNanos(other.getNanos());
        }
        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.Meta.Timestamp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Timestamp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long seconds_ ;
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000001;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Represents seconds of UTC time since Unix epoch
       * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
       * 9999-12-31T23:59:59Z inclusive.
       * </pre>
       *
       * <code>optional int64 seconds = 1;</code>
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seconds_ = 0L;
        onChanged();
        return this;
      }

      private int nanos_ ;
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public boolean hasNanos() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public int getNanos() {
        return nanos_;
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public Builder setNanos(int value) {
        bitField0_ |= 0x00000002;
        nanos_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-negative fractions of a second at nanosecond resolution. Negative
       * second values with fractions must still have non-negative nanos values
       * that count forward in time. Must be from 0 to 999,999,999
       * inclusive. This field may be limited in precision depending on context.
       * </pre>
       *
       * <code>optional int32 nanos = 2;</code>
       */
      public Builder clearNanos() {
        bitField0_ = (bitField0_ & ~0x00000002);
        nanos_ = 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.apimachinery.pkg.apis.meta.v1.Timestamp)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp)
    private static final io.kubernetes.client.proto.Meta.Timestamp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Timestamp();
    }

    public static io.kubernetes.client.proto.Meta.Timestamp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Timestamp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TypeMetaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Kind is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * 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 is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * 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 is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * 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>
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 2;</code>
     */
    boolean hasApiVersion();
    /**
     * <pre>
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 2;</code>
     */
    java.lang.String getApiVersion();
    /**
     * <pre>
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 2;</code>
     */
    com.google.protobuf.ByteString
        getApiVersionBytes();
  }
  /**
   * <pre>
   * TypeMeta describes an individual object in an API response or request
   * with strings representing the type of the object and its API schema version.
   * Structures that are versioned or persisted should inline TypeMeta.
   * 
   * +k8s:deepcopy-gen=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta}
   */
  public  static final class TypeMeta extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta)
      TypeMetaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TypeMeta.newBuilder() to construct.
    private TypeMeta(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TypeMeta() {
      kind_ = "";
      apiVersion_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TypeMeta(
        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;
              apiVersion_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.TypeMeta.class, io.kubernetes.client.proto.Meta.TypeMeta.Builder.class);
    }

    private int bitField0_;
    public static final int KIND_FIELD_NUMBER = 1;
    private volatile java.lang.Object kind_;
    /**
     * <pre>
     * Kind is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * 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 is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * 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 is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * 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 APIVERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object apiVersion_;
    /**
     * <pre>
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 2;</code>
     */
    public boolean hasApiVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 2;</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>
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 2;</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;
      }
    }

    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, apiVersion_);
      }
      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, apiVersion_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind()
            .equals(other.getKind());
      }
      result = result && (hasApiVersion() == other.hasApiVersion());
      if (hasApiVersion()) {
        result = result && getApiVersion()
            .equals(other.getApiVersion());
      }
      result = result && unknownFields.equals(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 (hasApiVersion()) {
        hash = (37 * hash) + APIVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getApiVersion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.TypeMeta 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.Meta.TypeMeta 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>
     * TypeMeta describes an individual object in an API response or request
     * with strings representing the type of the object and its API schema version.
     * Structures that are versioned or persisted should inline TypeMeta.
     * 
     * +k8s:deepcopy-gen=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta)
        io.kubernetes.client.proto.Meta.TypeMetaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.TypeMeta.class, io.kubernetes.client.proto.Meta.TypeMeta.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.TypeMeta.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);
        apiVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.TypeMeta getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.TypeMeta.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.TypeMeta buildPartial() {
        io.kubernetes.client.proto.Meta.TypeMeta result = new io.kubernetes.client.proto.Meta.TypeMeta(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.apiVersion_ = apiVersion_;
        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.Meta.TypeMeta) {
          return mergeFrom((io.kubernetes.client.proto.Meta.TypeMeta)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.TypeMeta other) {
        if (other == io.kubernetes.client.proto.Meta.TypeMeta.getDefaultInstance()) return this;
        if (other.hasKind()) {
          bitField0_ |= 0x00000001;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasApiVersion()) {
          bitField0_ |= 0x00000002;
          apiVersion_ = other.apiVersion_;
          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.Meta.TypeMeta parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.TypeMeta) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object kind_ = "";
      /**
       * <pre>
       * Kind is a string value representing the REST resource this object represents.
       * Servers may infer this from the endpoint the client submits requests to.
       * Cannot be updated.
       * In CamelCase.
       * 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 is a string value representing the REST resource this object represents.
       * Servers may infer this from the endpoint the client submits requests to.
       * Cannot be updated.
       * In CamelCase.
       * 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 is a string value representing the REST resource this object represents.
       * Servers may infer this from the endpoint the client submits requests to.
       * Cannot be updated.
       * In CamelCase.
       * 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 is a string value representing the REST resource this object represents.
       * Servers may infer this from the endpoint the client submits requests to.
       * Cannot be updated.
       * In CamelCase.
       * 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 is a string value representing the REST resource this object represents.
       * Servers may infer this from the endpoint the client submits requests to.
       * Cannot be updated.
       * In CamelCase.
       * 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 is a string value representing the REST resource this object represents.
       * Servers may infer this from the endpoint the client submits requests to.
       * Cannot be updated.
       * In CamelCase.
       * 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 apiVersion_ = "";
      /**
       * <pre>
       * APIVersion defines the versioned schema of this representation of an object.
       * Servers should convert recognized schemas to the latest internal value, and
       * may reject unrecognized values.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 2;</code>
       */
      public boolean hasApiVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * APIVersion defines the versioned schema of this representation of an object.
       * Servers should convert recognized schemas to the latest internal value, and
       * may reject unrecognized values.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 2;</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>
       * APIVersion defines the versioned schema of this representation of an object.
       * Servers should convert recognized schemas to the latest internal value, and
       * may reject unrecognized values.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 2;</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>
       * APIVersion defines the versioned schema of this representation of an object.
       * Servers should convert recognized schemas to the latest internal value, and
       * may reject unrecognized values.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 2;</code>
       */
      public Builder setApiVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        apiVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * APIVersion defines the versioned schema of this representation of an object.
       * Servers should convert recognized schemas to the latest internal value, and
       * may reject unrecognized values.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 2;</code>
       */
      public Builder clearApiVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        apiVersion_ = getDefaultInstance().getApiVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * APIVersion defines the versioned schema of this representation of an object.
       * Servers should convert recognized schemas to the latest internal value, and
       * may reject unrecognized values.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 2;</code>
       */
      public Builder setApiVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        apiVersion_ = 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.apimachinery.pkg.apis.meta.v1.TypeMeta)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta)
    private static final io.kubernetes.client.proto.Meta.TypeMeta DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.TypeMeta();
    }

    public static io.kubernetes.client.proto.Meta.TypeMeta getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.TypeMeta getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VerbsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.Verbs)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated string items = 1;</code>
     */
    java.util.List<java.lang.String>
        getItemsList();
    /**
     * <code>repeated string items = 1;</code>
     */
    int getItemsCount();
    /**
     * <code>repeated string items = 1;</code>
     */
    java.lang.String getItems(int index);
    /**
     * <code>repeated string items = 1;</code>
     */
    com.google.protobuf.ByteString
        getItemsBytes(int index);
  }
  /**
   * <pre>
   * Verbs masks the value so protobuf can generate
   * 
   * +protobuf.nullable=true
   * +protobuf.options.(gogoproto.goproto_stringer)=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Verbs}
   */
  public  static final class Verbs extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Verbs)
      VerbsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Verbs.newBuilder() to construct.
    private Verbs(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Verbs() {
      items_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Verbs(
        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)) {
                items_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              items_.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)) {
          items_ = items_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.Verbs.class, io.kubernetes.client.proto.Meta.Verbs.Builder.class);
    }

    public static final int ITEMS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList items_;
    /**
     * <code>repeated string items = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getItemsList() {
      return items_;
    }
    /**
     * <code>repeated string items = 1;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     * <code>repeated string items = 1;</code>
     */
    public java.lang.String getItems(int index) {
      return items_.get(index);
    }
    /**
     * <code>repeated string items = 1;</code>
     */
    public com.google.protobuf.ByteString
        getItemsBytes(int index) {
      return items_.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 < items_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, items_.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 < items_.size(); i++) {
          dataSize += computeStringSizeNoTag(items_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getItemsList().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.Meta.Verbs)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.Meta.Verbs other = (io.kubernetes.client.proto.Meta.Verbs) 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.Meta.Verbs parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.Verbs parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.Verbs 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.Meta.Verbs 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>
     * Verbs masks the value so protobuf can generate
     * 
     * +protobuf.nullable=true
     * +protobuf.options.(gogoproto.goproto_stringer)=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.Verbs}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.Verbs)
        io.kubernetes.client.proto.Meta.VerbsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.Verbs.class, io.kubernetes.client.proto.Meta.Verbs.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.Meta.Verbs.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();
        items_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.Verbs getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.Verbs buildPartial() {
        io.kubernetes.client.proto.Meta.Verbs result = new io.kubernetes.client.proto.Meta.Verbs(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          items_ = items_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.items_ = items_;
        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.Meta.Verbs) {
          return mergeFrom((io.kubernetes.client.proto.Meta.Verbs)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.Verbs other) {
        if (other == io.kubernetes.client.proto.Meta.Verbs.getDefaultInstance()) return this;
        if (!other.items_.isEmpty()) {
          if (items_.isEmpty()) {
            items_ = other.items_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureItemsIsMutable();
            items_.addAll(other.items_);
          }
          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.Meta.Verbs parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.Verbs) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList items_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          items_ = new com.google.protobuf.LazyStringArrayList(items_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getItemsList() {
        return items_.getUnmodifiableView();
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public int getItemsCount() {
        return items_.size();
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public java.lang.String getItems(int index) {
        return items_.get(index);
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public com.google.protobuf.ByteString
          getItemsBytes(int index) {
        return items_.getByteString(index);
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public Builder setItems(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureItemsIsMutable();
        items_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public Builder addItems(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureItemsIsMutable();
        items_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<java.lang.String> values) {
        ensureItemsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, items_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public Builder clearItems() {
        items_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string items = 1;</code>
       */
      public Builder addItemsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureItemsIsMutable();
        items_.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.apimachinery.pkg.apis.meta.v1.Verbs)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.Verbs)
    private static final io.kubernetes.client.proto.Meta.Verbs DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.Verbs();
    }

    public static io.kubernetes.client.proto.Meta.Verbs getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.Verbs getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WatchEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    /**
     * <pre>
     * Object is:
     *  * If Type is Added or Modified: the new state of the object.
     *  * If Type is Deleted: the state of the object immediately before deletion.
     *  * If Type is Error: *Status is recommended; other types may make sense
     *    depending on context.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
     */
    boolean hasObject();
    /**
     * <pre>
     * Object is:
     *  * If Type is Added or Modified: the new state of the object.
     *  * If Type is Deleted: the state of the object immediately before deletion.
     *  * If Type is Error: *Status is recommended; other types may make sense
     *    depending on context.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtension getObject();
    /**
     * <pre>
     * Object is:
     *  * If Type is Added or Modified: the new state of the object.
     *  * If Type is Deleted: the state of the object immediately before deletion.
     *  * If Type is Error: *Status is recommended; other types may make sense
     *    depending on context.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getObjectOrBuilder();
  }
  /**
   * <pre>
   * Event represents a single event to a watched resource.
   * 
   * +protobuf=true
   * +k8s:deepcopy-gen=true
   * +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
   * </pre>
   *
   * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent}
   */
  public  static final class WatchEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent)
      WatchEventOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use WatchEvent.newBuilder() to construct.
    private WatchEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private WatchEvent() {
      type_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private WatchEvent(
        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: {
              io.kubernetes.client.proto.Runtime.RawExtension.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = object_.toBuilder();
              }
              object_ = input.readMessage(io.kubernetes.client.proto.Runtime.RawExtension.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(object_);
                object_ = 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.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.Meta.WatchEvent.class, io.kubernetes.client.proto.Meta.WatchEvent.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OBJECT_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.Runtime.RawExtension object_;
    /**
     * <pre>
     * Object is:
     *  * If Type is Added or Modified: the new state of the object.
     *  * If Type is Deleted: the state of the object immediately before deletion.
     *  * If Type is Error: *Status is recommended; other types may make sense
     *    depending on context.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
     */
    public boolean hasObject() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     * Object is:
     *  * If Type is Added or Modified: the new state of the object.
     *  * If Type is Deleted: the state of the object immediately before deletion.
     *  * If Type is Error: *Status is recommended; other types may make sense
     *    depending on context.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtension getObject() {
      return object_ == null ? io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance() : object_;
    }
    /**
     * <pre>
     * Object is:
     *  * If Type is Added or Modified: the new state of the object.
     *  * If Type is Deleted: the state of the object immediately before deletion.
     *  * If Type is Error: *Status is recommended; other types may make sense
     *    depending on context.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getObjectOrBuilder() {
      return object_ == null ? io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance() : object_;
    }

    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)) {
        output.writeMessage(2, getObject());
      }
      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.CodedOutputStream
          .computeMessageSize(2, getObject());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType()
            .equals(other.getType());
      }
      result = result && (hasObject() == other.hasObject());
      if (hasObject()) {
        result = result && getObject()
            .equals(other.getObject());
      }
      result = result && unknownFields.equals(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 (hasObject()) {
        hash = (37 * hash) + OBJECT_FIELD_NUMBER;
        hash = (53 * hash) + getObject().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.kubernetes.client.proto.Meta.WatchEvent 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.Meta.WatchEvent 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 represents a single event to a watched resource.
     * 
     * +protobuf=true
     * +k8s:deepcopy-gen=true
     * +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
     * </pre>
     *
     * Protobuf type {@code k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent)
        io.kubernetes.client.proto.Meta.WatchEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.Meta.internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.Meta.WatchEvent.class, io.kubernetes.client.proto.Meta.WatchEvent.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getObjectFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (objectBuilder_ == null) {
          object_ = null;
        } else {
          objectBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public io.kubernetes.client.proto.Meta.WatchEvent getDefaultInstanceForType() {
        return io.kubernetes.client.proto.Meta.WatchEvent.getDefaultInstance();
      }

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

      public io.kubernetes.client.proto.Meta.WatchEvent buildPartial() {
        io.kubernetes.client.proto.Meta.WatchEvent result = new io.kubernetes.client.proto.Meta.WatchEvent(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;
        }
        if (objectBuilder_ == null) {
          result.object_ = object_;
        } else {
          result.object_ = objectBuilder_.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.Meta.WatchEvent) {
          return mergeFrom((io.kubernetes.client.proto.Meta.WatchEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.Meta.WatchEvent other) {
        if (other == io.kubernetes.client.proto.Meta.WatchEvent.getDefaultInstance()) return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasObject()) {
          mergeObject(other.getObject());
        }
        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.Meta.WatchEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.Meta.WatchEvent) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string type = 1;</code>
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Runtime.RawExtension object_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Runtime.RawExtension, io.kubernetes.client.proto.Runtime.RawExtension.Builder, io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder> objectBuilder_;
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public boolean hasObject() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension getObject() {
        if (objectBuilder_ == null) {
          return object_ == null ? io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance() : object_;
        } else {
          return objectBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public Builder setObject(io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (objectBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          object_ = value;
          onChanged();
        } else {
          objectBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public Builder setObject(
          io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (objectBuilder_ == null) {
          object_ = builderForValue.build();
          onChanged();
        } else {
          objectBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public Builder mergeObject(io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (objectBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              object_ != null &&
              object_ != io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance()) {
            object_ =
              io.kubernetes.client.proto.Runtime.RawExtension.newBuilder(object_).mergeFrom(value).buildPartial();
          } else {
            object_ = value;
          }
          onChanged();
        } else {
          objectBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public Builder clearObject() {
        if (objectBuilder_ == null) {
          object_ = null;
          onChanged();
        } else {
          objectBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder getObjectBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getObjectFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getObjectOrBuilder() {
        if (objectBuilder_ != null) {
          return objectBuilder_.getMessageOrBuilder();
        } else {
          return object_ == null ?
              io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance() : object_;
        }
      }
      /**
       * <pre>
       * Object is:
       *  * If Type is Added or Modified: the new state of the object.
       *  * If Type is Deleted: the state of the object immediately before deletion.
       *  * If Type is Error: *Status is recommended; other types may make sense
       *    depending on context.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.kubernetes.client.proto.Runtime.RawExtension, io.kubernetes.client.proto.Runtime.RawExtension.Builder, io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder> 
          getObjectFieldBuilder() {
        if (objectBuilder_ == null) {
          objectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension, io.kubernetes.client.proto.Runtime.RawExtension.Builder, io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>(
                  getObject(),
                  getParentForChildren(),
                  isClean());
          object_ = null;
        }
        return objectBuilder_;
      }
      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.apimachinery.pkg.apis.meta.v1.WatchEvent)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent)
    private static final io.kubernetes.client.proto.Meta.WatchEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.Meta.WatchEvent();
    }

    public static io.kubernetes.client.proto.Meta.WatchEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public io.kubernetes.client.proto.Meta.WatchEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_MatchLabelsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_MatchLabelsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_LabelsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_LabelsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_AnnotationsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_AnnotationsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n4k8s.io/apimachinery/pkg/apis/meta/v1/g" +
      "enerated.proto\022$k8s.io.apimachinery.pkg." +
      "apis.meta.v1\032/k8s.io/apimachinery/pkg/ru" +
      "ntime/generated.proto\0326k8s.io/apimachine" +
      "ry/pkg/runtime/schema/generated.proto\0323k" +
      "8s.io/apimachinery/pkg/util/intstr/gener" +
      "ated.proto\"\251\002\n\010APIGroup\022\014\n\004name\030\001 \001(\t\022P\n" +
      "\010versions\030\002 \003(\0132>.k8s.io.apimachinery.pk" +
      "g.apis.meta.v1.GroupVersionForDiscovery\022" +
      "X\n\020preferredVersion\030\003 \001(\0132>.k8s.io.apima",
      "chinery.pkg.apis.meta.v1.GroupVersionFor" +
      "Discovery\022c\n\032serverAddressByClientCIDRs\030" +
      "\004 \003(\0132?.k8s.io.apimachinery.pkg.apis.met" +
      "a.v1.ServerAddressByClientCIDR\"N\n\014APIGro" +
      "upList\022>\n\006groups\030\001 \003(\0132..k8s.io.apimachi" +
      "nery.pkg.apis.meta.v1.APIGroup\"\267\001\n\013APIRe" +
      "source\022\014\n\004name\030\001 \001(\t\022\024\n\014singularName\030\006 \001" +
      "(\t\022\022\n\nnamespaced\030\002 \001(\010\022\014\n\004kind\030\003 \001(\t\022:\n\005" +
      "verbs\030\004 \001(\0132+.k8s.io.apimachinery.pkg.ap" +
      "is.meta.v1.Verbs\022\022\n\nshortNames\030\005 \003(\t\022\022\n\n",
      "categories\030\007 \003(\t\"m\n\017APIResourceList\022\024\n\014g" +
      "roupVersion\030\001 \001(\t\022D\n\tresources\030\002 \003(\01321.k" +
      "8s.io.apimachinery.pkg.apis.meta.v1.APIR" +
      "esource\"\204\001\n\013APIVersions\022\020\n\010versions\030\001 \003(" +
      "\t\022c\n\032serverAddressByClientCIDRs\030\002 \003(\0132?." +
      "k8s.io.apimachinery.pkg.apis.meta.v1.Ser" +
      "verAddressByClientCIDR\"\254\001\n\rDeleteOptions" +
      "\022\032\n\022gracePeriodSeconds\030\001 \001(\003\022J\n\rprecondi" +
      "tions\030\002 \001(\01323.k8s.io.apimachinery.pkg.ap" +
      "is.meta.v1.Preconditions\022\030\n\020orphanDepend",
      "ents\030\003 \001(\010\022\031\n\021propagationPolicy\030\004 \001(\t\"\034\n" +
      "\010Duration\022\020\n\010duration\030\001 \001(\003\".\n\rExportOpt" +
      "ions\022\016\n\006export\030\001 \001(\010\022\r\n\005exact\030\002 \001(\010\"C\n\nG" +
      "etOptions\022\027\n\017resourceVersion\030\001 \001(\t\022\034\n\024in" +
      "cludeUninitialized\030\002 \001(\010\"(\n\tGroupKind\022\r\n" +
      "\005group\030\001 \001(\t\022\014\n\004kind\030\002 \001(\t\"0\n\rGroupResou" +
      "rce\022\r\n\005group\030\001 \001(\t\022\020\n\010resource\030\002 \001(\t\".\n\014" +
      "GroupVersion\022\r\n\005group\030\001 \001(\t\022\017\n\007version\030\002" +
      " \001(\t\"A\n\030GroupVersionForDiscovery\022\024\n\014grou" +
      "pVersion\030\001 \001(\t\022\017\n\007version\030\002 \001(\t\"@\n\020Group",
      "VersionKind\022\r\n\005group\030\001 \001(\t\022\017\n\007version\030\002 " +
      "\001(\t\022\014\n\004kind\030\003 \001(\t\"H\n\024GroupVersionResourc" +
      "e\022\r\n\005group\030\001 \001(\t\022\017\n\007version\030\002 \001(\t\022\020\n\010res" +
      "ource\030\003 \001(\t\"\033\n\013Initializer\022\014\n\004name\030\001 \001(\t" +
      "\"\220\001\n\014Initializers\022B\n\007pending\030\001 \003(\01321.k8s" +
      ".io.apimachinery.pkg.apis.meta.v1.Initia" +
      "lizer\022<\n\006result\030\002 \001(\0132,.k8s.io.apimachin" +
      "ery.pkg.apis.meta.v1.Status\"\370\001\n\rLabelSel" +
      "ector\022Y\n\013matchLabels\030\001 \003(\0132D.k8s.io.apim" +
      "achinery.pkg.apis.meta.v1.LabelSelector.",
      "MatchLabelsEntry\022X\n\020matchExpressions\030\002 \003" +
      "(\0132>.k8s.io.apimachinery.pkg.apis.meta.v" +
      "1.LabelSelectorRequirement\0322\n\020MatchLabel" +
      "sEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"I" +
      "\n\030LabelSelectorRequirement\022\013\n\003key\030\001 \001(\t\022" +
      "\020\n\010operator\030\002 \001(\t\022\016\n\006values\030\003 \003(\t\"5\n\010Lis" +
      "tMeta\022\020\n\010selfLink\030\001 \001(\t\022\027\n\017resourceVersi" +
      "on\030\002 \001(\t\"\231\001\n\013ListOptions\022\025\n\rlabelSelecto" +
      "r\030\001 \001(\t\022\025\n\rfieldSelector\030\002 \001(\t\022\034\n\024includ" +
      "eUninitialized\030\006 \001(\010\022\r\n\005watch\030\003 \001(\010\022\027\n\017r",
      "esourceVersion\030\004 \001(\t\022\026\n\016timeoutSeconds\030\005" +
      " \001(\003\"+\n\tMicroTime\022\017\n\007seconds\030\001 \001(\003\022\r\n\005na" +
      "nos\030\002 \001(\005\"\214\006\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\017resour" +
      "ceVersion\030\006 \001(\t\022\022\n\ngeneration\030\007 \001(\003\022E\n\021c" +
      "reationTimestamp\030\010 \001(\0132*.k8s.io.apimachi" +
      "nery.pkg.apis.meta.v1.Time\022E\n\021deletionTi" +
      "mestamp\030\t \001(\0132*.k8s.io.apimachinery.pkg." +
      "apis.meta.v1.Time\022\"\n\032deletionGracePeriod",
      "Seconds\030\n \001(\003\022L\n\006labels\030\013 \003(\0132<.k8s.io.a" +
      "pimachinery.pkg.apis.meta.v1.ObjectMeta." +
      "LabelsEntry\022V\n\013annotations\030\014 \003(\0132A.k8s.i" +
      "o.apimachinery.pkg.apis.meta.v1.ObjectMe" +
      "ta.AnnotationsEntry\022M\n\017ownerReferences\030\r" +
      " \003(\01324.k8s.io.apimachinery.pkg.apis.meta" +
      ".v1.OwnerReference\022H\n\014initializers\030\020 \001(\013" +
      "22.k8s.io.apimachinery.pkg.apis.meta.v1." +
      "Initializers\022\022\n\nfinalizers\030\016 \003(\t\022\023\n\013clus" +
      "terName\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\020AnnotationsEntry" +
      "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"}\n\016Owne" +
      "rReference\022\022\n\napiVersion\030\005 \001(\t\022\014\n\004kind\030\001" +
      " \001(\t\022\014\n\004name\030\003 \001(\t\022\013\n\003uid\030\004 \001(\t\022\022\n\ncontr" +
      "oller\030\006 \001(\010\022\032\n\022blockOwnerDeletion\030\007 \001(\010\"" +
      "\034\n\rPreconditions\022\013\n\003uid\030\001 \001(\t\"\032\n\tRootPat" +
      "hs\022\r\n\005paths\030\001 \003(\t\"F\n\031ServerAddressByClie" +
      "ntCIDR\022\022\n\nclientCIDR\030\001 \001(\t\022\025\n\rserverAddr" +
      "ess\030\002 \001(\t\"\317\001\n\006Status\022@\n\010metadata\030\001 \001(\0132." +
      ".k8s.io.apimachinery.pkg.apis.meta.v1.Li",
      "stMeta\022\016\n\006status\030\002 \001(\t\022\017\n\007message\030\003 \001(\t\022" +
      "\016\n\006reason\030\004 \001(\t\022D\n\007details\030\005 \001(\01323.k8s.i" +
      "o.apimachinery.pkg.apis.meta.v1.StatusDe" +
      "tails\022\014\n\004code\030\006 \001(\005\"=\n\013StatusCause\022\016\n\006re" +
      "ason\030\001 \001(\t\022\017\n\007message\030\002 \001(\t\022\r\n\005field\030\003 \001" +
      "(\t\"\245\001\n\rStatusDetails\022\014\n\004name\030\001 \001(\t\022\r\n\005gr" +
      "oup\030\002 \001(\t\022\014\n\004kind\030\003 \001(\t\022\013\n\003uid\030\006 \001(\t\022A\n\006" +
      "causes\030\004 \003(\01321.k8s.io.apimachinery.pkg.a" +
      "pis.meta.v1.StatusCause\022\031\n\021retryAfterSec" +
      "onds\030\005 \001(\005\"&\n\004Time\022\017\n\007seconds\030\001 \001(\003\022\r\n\005n",
      "anos\030\002 \001(\005\"+\n\tTimestamp\022\017\n\007seconds\030\001 \001(\003" +
      "\022\r\n\005nanos\030\002 \001(\005\",\n\010TypeMeta\022\014\n\004kind\030\001 \001(" +
      "\t\022\022\n\napiVersion\030\002 \001(\t\"\026\n\005Verbs\022\r\n\005items\030" +
      "\001 \003(\t\"Y\n\nWatchEvent\022\014\n\004type\030\001 \001(\t\022=\n\006obj" +
      "ect\030\002 \001(\0132-.k8s.io.apimachinery.pkg.runt" +
      "ime.RawExtensionB&\n\032io.kubernetes.client" +
      ".protoB\004MetaZ\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.Runtime.getDescriptor(),
          io.kubernetes.client.proto.RuntimeSchema.getDescriptor(),
          io.kubernetes.client.proto.IntStr.getDescriptor(),
        }, assigner);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroup_descriptor,
        new java.lang.String[] { "Name", "Versions", "PreferredVersion", "ServerAddressByClientCIDRs", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIGroupList_descriptor,
        new java.lang.String[] { "Groups", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResource_descriptor,
        new java.lang.String[] { "Name", "SingularName", "Namespaced", "Kind", "Verbs", "ShortNames", "Categories", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIResourceList_descriptor,
        new java.lang.String[] { "GroupVersion", "Resources", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_APIVersions_descriptor,
        new java.lang.String[] { "Versions", "ServerAddressByClientCIDRs", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_DeleteOptions_descriptor,
        new java.lang.String[] { "GracePeriodSeconds", "Preconditions", "OrphanDependents", "PropagationPolicy", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Duration_descriptor,
        new java.lang.String[] { "Duration", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ExportOptions_descriptor,
        new java.lang.String[] { "Export", "Exact", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GetOptions_descriptor,
        new java.lang.String[] { "ResourceVersion", "IncludeUninitialized", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupKind_descriptor,
        new java.lang.String[] { "Group", "Kind", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupResource_descriptor,
        new java.lang.String[] { "Group", "Resource", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersion_descriptor,
        new java.lang.String[] { "Group", "Version", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionForDiscovery_descriptor,
        new java.lang.String[] { "GroupVersion", "Version", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionKind_descriptor,
        new java.lang.String[] { "Group", "Version", "Kind", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_GroupVersionResource_descriptor,
        new java.lang.String[] { "Group", "Version", "Resource", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializer_descriptor,
        new java.lang.String[] { "Name", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Initializers_descriptor,
        new java.lang.String[] { "Pending", "Result", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_descriptor,
        new java.lang.String[] { "MatchLabels", "MatchExpressions", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_MatchLabelsEntry_descriptor =
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_MatchLabelsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelector_MatchLabelsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_LabelSelectorRequirement_descriptor,
        new java.lang.String[] { "Key", "Operator", "Values", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListMeta_descriptor,
        new java.lang.String[] { "SelfLink", "ResourceVersion", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ListOptions_descriptor,
        new java.lang.String[] { "LabelSelector", "FieldSelector", "IncludeUninitialized", "Watch", "ResourceVersion", "TimeoutSeconds", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_MicroTime_descriptor,
        new java.lang.String[] { "Seconds", "Nanos", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_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_apimachinery_pkg_apis_meta_v1_ObjectMeta_LabelsEntry_descriptor =
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_LabelsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_LabelsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_AnnotationsEntry_descriptor =
      internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_AnnotationsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ObjectMeta_AnnotationsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_OwnerReference_descriptor,
        new java.lang.String[] { "ApiVersion", "Kind", "Name", "Uid", "Controller", "BlockOwnerDeletion", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Preconditions_descriptor,
        new java.lang.String[] { "Uid", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_RootPaths_descriptor,
        new java.lang.String[] { "Paths", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_ServerAddressByClientCIDR_descriptor,
        new java.lang.String[] { "ClientCIDR", "ServerAddress", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Status_descriptor,
        new java.lang.String[] { "Metadata", "Status", "Message", "Reason", "Details", "Code", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusCause_descriptor,
        new java.lang.String[] { "Reason", "Message", "Field", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_StatusDetails_descriptor,
        new java.lang.String[] { "Name", "Group", "Kind", "Uid", "Causes", "RetryAfterSeconds", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Time_descriptor,
        new java.lang.String[] { "Seconds", "Nanos", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Timestamp_descriptor,
        new java.lang.String[] { "Seconds", "Nanos", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_TypeMeta_descriptor,
        new java.lang.String[] { "Kind", "ApiVersion", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_Verbs_descriptor,
        new java.lang.String[] { "Items", });
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_k8s_io_apimachinery_pkg_apis_meta_v1_WatchEvent_descriptor,
        new java.lang.String[] { "Type", "Object", });
    io.kubernetes.client.proto.Runtime.getDescriptor();
    io.kubernetes.client.proto.RuntimeSchema.getDescriptor();
    io.kubernetes.client.proto.IntStr.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
