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

public final class V1beta1Apiextensions {
  private V1beta1Apiextensions() {}

  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 ConversionRequestOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
     * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
     * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
     * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    boolean hasUid();
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
     * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
     * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
     * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    java.lang.String getUid();
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
     * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
     * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
     * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    com.google.protobuf.ByteString getUidBytes();

    /**
     *
     *
     * <pre>
     * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
     * </pre>
     *
     * <code>optional string desiredAPIVersion = 2;</code>
     */
    boolean hasDesiredAPIVersion();
    /**
     *
     *
     * <pre>
     * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
     * </pre>
     *
     * <code>optional string desiredAPIVersion = 2;</code>
     */
    java.lang.String getDesiredAPIVersion();
    /**
     *
     *
     * <pre>
     * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
     * </pre>
     *
     * <code>optional string desiredAPIVersion = 2;</code>
     */
    com.google.protobuf.ByteString getDesiredAPIVersionBytes();

    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getObjectsList();
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtension getObjects(int index);
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    int getObjectsCount();
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
        getObjectsOrBuilderList();
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getObjectsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ConversionRequest describes the conversion request parameters.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest}
   */
  public static final class ConversionRequest extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest)
      ConversionRequestOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConversionRequest.newBuilder() to construct.
    private ConversionRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConversionRequest() {
      uid_ = "";
      desiredAPIVersion_ = "";
      objects_ = java.util.Collections.emptyList();
    }

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

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

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

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

    private int bitField0_;
    public static final int UID_FIELD_NUMBER = 1;
    private volatile java.lang.Object uid_;
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
     * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
     * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
     * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
     * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
     * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
     * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
     * </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>
     * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
     * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
     * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
     * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
     * </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;
      }
    }

    public static final int DESIREDAPIVERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object desiredAPIVersion_;
    /**
     *
     *
     * <pre>
     * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
     * </pre>
     *
     * <code>optional string desiredAPIVersion = 2;</code>
     */
    public boolean hasDesiredAPIVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
     * </pre>
     *
     * <code>optional string desiredAPIVersion = 2;</code>
     */
    public java.lang.String getDesiredAPIVersion() {
      java.lang.Object ref = desiredAPIVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          desiredAPIVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
     * </pre>
     *
     * <code>optional string desiredAPIVersion = 2;</code>
     */
    public com.google.protobuf.ByteString getDesiredAPIVersionBytes() {
      java.lang.Object ref = desiredAPIVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        desiredAPIVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OBJECTS_FIELD_NUMBER = 3;
    private java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> objects_;
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getObjectsList() {
      return objects_;
    }
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
        getObjectsOrBuilderList() {
      return objects_;
    }
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    public int getObjectsCount() {
      return objects_.size();
    }
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtension getObjects(int index) {
      return objects_.get(index);
    }
    /**
     *
     *
     * <pre>
     * `objects` is the list of CR objects to be converted.
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getObjectsOrBuilder(int index) {
      return objects_.get(index);
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, desiredAPIVersion_);
      }
      for (int i = 0; i < objects_.size(); i++) {
        output.writeMessage(3, objects_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, desiredAPIVersion_);
      }
      for (int i = 0; i < objects_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, objects_.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.V1beta1Apiextensions.ConversionRequest)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest) obj;

      boolean result = true;
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid().equals(other.getUid());
      }
      result = result && (hasDesiredAPIVersion() == other.hasDesiredAPIVersion());
      if (hasDesiredAPIVersion()) {
        result = result && getDesiredAPIVersion().equals(other.getDesiredAPIVersion());
      }
      result = result && getObjectsList().equals(other.getObjectsList());
      result = result && unknownFields.equals(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();
      }
      if (hasDesiredAPIVersion()) {
        hash = (37 * hash) + DESIREDAPIVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getDesiredAPIVersion().hashCode();
      }
      if (getObjectsCount() > 0) {
        hash = (37 * hash) + OBJECTS_FIELD_NUMBER;
        hash = (53 * hash) + getObjectsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConversionRequest describes the conversion request parameters.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest)
        io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionRequest_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        desiredAPIVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          objectsBuilder_.clear();
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.desiredAPIVersion_ = desiredAPIVersion_;
        if (objectsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            objects_ = java.util.Collections.unmodifiableList(objects_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.objects_ = objects_;
        } else {
          result.objects_ = objectsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest
                .getDefaultInstance()) return this;
        if (other.hasUid()) {
          bitField0_ |= 0x00000001;
          uid_ = other.uid_;
          onChanged();
        }
        if (other.hasDesiredAPIVersion()) {
          bitField0_ |= 0x00000002;
          desiredAPIVersion_ = other.desiredAPIVersion_;
          onChanged();
        }
        if (objectsBuilder_ == null) {
          if (!other.objects_.isEmpty()) {
            if (objects_.isEmpty()) {
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureObjectsIsMutable();
              objects_.addAll(other.objects_);
            }
            onChanged();
          }
        } else {
          if (!other.objects_.isEmpty()) {
            if (objectsBuilder_.isEmpty()) {
              objectsBuilder_.dispose();
              objectsBuilder_ = null;
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000004);
              objectsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getObjectsFieldBuilder()
                      : null;
            } else {
              objectsBuilder_.addAllMessages(other.objects_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object uid_ = "";
      /**
       *
       *
       * <pre>
       * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
       * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
       * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
       * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
       * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
       * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
       * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
       * </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>
       * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
       * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
       * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
       * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
       * </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>
       * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
       * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
       * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
       * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
       * </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>
       * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
       * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
       * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
       * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `uid` is an identifier for the individual request/response. It allows us to distinguish instances of requests which are
       * otherwise identical (parallel requests, requests when earlier requests did not modify etc)
       * The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request.
       * It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.
       * </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;
      }

      private java.lang.Object desiredAPIVersion_ = "";
      /**
       *
       *
       * <pre>
       * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
       * </pre>
       *
       * <code>optional string desiredAPIVersion = 2;</code>
       */
      public boolean hasDesiredAPIVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
       * </pre>
       *
       * <code>optional string desiredAPIVersion = 2;</code>
       */
      public java.lang.String getDesiredAPIVersion() {
        java.lang.Object ref = desiredAPIVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            desiredAPIVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
       * </pre>
       *
       * <code>optional string desiredAPIVersion = 2;</code>
       */
      public com.google.protobuf.ByteString getDesiredAPIVersionBytes() {
        java.lang.Object ref = desiredAPIVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          desiredAPIVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
       * </pre>
       *
       * <code>optional string desiredAPIVersion = 2;</code>
       */
      public Builder setDesiredAPIVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        desiredAPIVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
       * </pre>
       *
       * <code>optional string desiredAPIVersion = 2;</code>
       */
      public Builder clearDesiredAPIVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        desiredAPIVersion_ = getDefaultInstance().getDesiredAPIVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `desiredAPIVersion` is the version to convert given objects to. e.g. "myapi.example.com/v1"
       * </pre>
       *
       * <code>optional string desiredAPIVersion = 2;</code>
       */
      public Builder setDesiredAPIVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        desiredAPIVersion_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> objects_ =
          java.util.Collections.emptyList();

      private void ensureObjectsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          objects_ =
              new java.util.ArrayList<io.kubernetes.client.proto.Runtime.RawExtension>(objects_);
          bitField0_ |= 0x00000004;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension,
              io.kubernetes.client.proto.Runtime.RawExtension.Builder,
              io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          objectsBuilder_;

      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getObjectsList() {
        if (objectsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(objects_);
        } else {
          return objectsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public int getObjectsCount() {
        if (objectsBuilder_ == null) {
          return objects_.size();
        } else {
          return objectsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension getObjects(int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);
        } else {
          return objectsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder setObjects(int index, io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.set(index, value);
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder setObjects(
          int index, io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.set(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder addObjects(io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder addObjects(int index, io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(index, value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder addObjects(
          io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder addObjects(
          int index, io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder addAllObjects(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Runtime.RawExtension> values) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, objects_);
          onChanged();
        } else {
          objectsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder clearObjects() {
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          objectsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public Builder removeObjects(int index) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.remove(index);
          onChanged();
        } else {
          objectsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder getObjectsBuilder(int index) {
        return getObjectsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getObjectsOrBuilder(
          int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);
        } else {
          return objectsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          getObjectsOrBuilderList() {
        if (objectsBuilder_ != null) {
          return objectsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(objects_);
        }
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder addObjectsBuilder() {
        return getObjectsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder addObjectsBuilder(int index) {
        return getObjectsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * `objects` is the list of CR objects to be converted.
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension.Builder>
          getObjectsBuilderList() {
        return getObjectsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension,
              io.kubernetes.client.proto.Runtime.RawExtension.Builder,
              io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          getObjectsFieldBuilder() {
        if (objectsBuilder_ == null) {
          objectsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.Runtime.RawExtension,
                  io.kubernetes.client.proto.Runtime.RawExtension.Builder,
                  io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>(
                  objects_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          objects_ = null;
        }
        return objectsBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface ConversionResponseOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response.
     * This should be copied over from the corresponding AdmissionRequest.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    boolean hasUid();
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response.
     * This should be copied over from the corresponding AdmissionRequest.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    java.lang.String getUid();
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response.
     * This should be copied over from the corresponding AdmissionRequest.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    com.google.protobuf.ByteString getUidBytes();

    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getConvertedObjectsList();
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtension getConvertedObjects(int index);
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    int getConvertedObjectsCount();
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
        getConvertedObjectsOrBuilderList();
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getConvertedObjectsOrBuilder(
        int index);

    /**
     *
     *
     * <pre>
     * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
     * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
     * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
     * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
     * will be used to construct an error message for the end user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
     */
    boolean hasResult();
    /**
     *
     *
     * <pre>
     * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
     * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
     * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
     * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
     * will be used to construct an error message for the end user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
     */
    io.kubernetes.client.proto.Meta.Status getResult();
    /**
     *
     *
     * <pre>
     * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
     * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
     * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
     * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
     * will be used to construct an error message for the end user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
     */
    io.kubernetes.client.proto.Meta.StatusOrBuilder getResultOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ConversionResponse describes a conversion response.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse}
   */
  public static final class ConversionResponse extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse)
      ConversionResponseOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConversionResponse.newBuilder() to construct.
    private ConversionResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConversionResponse() {
      uid_ = "";
      convertedObjects_ = java.util.Collections.emptyList();
    }

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

    private ConversionResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                uid_ = bs;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  convertedObjects_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.Runtime.RawExtension>();
                  mutable_bitField0_ |= 0x00000002;
                }
                convertedObjects_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.Runtime.RawExtension.PARSER, extensionRegistry));
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Meta.Status.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = result_.toBuilder();
                }
                result_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Status.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(result_);
                  result_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          convertedObjects_ = java.util.Collections.unmodifiableList(convertedObjects_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private int bitField0_;
    public static final int UID_FIELD_NUMBER = 1;
    private volatile java.lang.Object uid_;
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response.
     * This should be copied over from the corresponding AdmissionRequest.
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * `uid` is an identifier for the individual request/response.
     * This should be copied over from the corresponding AdmissionRequest.
     * </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>
     * `uid` is an identifier for the individual request/response.
     * This should be copied over from the corresponding AdmissionRequest.
     * </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;
      }
    }

    public static final int CONVERTEDOBJECTS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> convertedObjects_;
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension>
        getConvertedObjectsList() {
      return convertedObjects_;
    }
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
        getConvertedObjectsOrBuilderList() {
      return convertedObjects_;
    }
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    public int getConvertedObjectsCount() {
      return convertedObjects_.size();
    }
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtension getConvertedObjects(int index) {
      return convertedObjects_.get(index);
    }
    /**
     *
     *
     * <pre>
     * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
     * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
     * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getConvertedObjectsOrBuilder(
        int index) {
      return convertedObjects_.get(index);
    }

    public static final int RESULT_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.Status result_;
    /**
     *
     *
     * <pre>
     * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
     * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
     * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
     * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
     * will be used to construct an error message for the end user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
     * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
     * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
     * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
     * will be used to construct an error message for the end user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.Status getResult() {
      return result_ == null
          ? io.kubernetes.client.proto.Meta.Status.getDefaultInstance()
          : result_;
    }
    /**
     *
     *
     * <pre>
     * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
     * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
     * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
     * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
     * will be used to construct an error message for the end user.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.StatusOrBuilder getResultOrBuilder() {
      return result_ == null
          ? io.kubernetes.client.proto.Meta.Status.getDefaultInstance()
          : result_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uid_);
      }
      for (int i = 0; i < convertedObjects_.size(); i++) {
        output.writeMessage(2, convertedObjects_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, getResult());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uid_);
      }
      for (int i = 0; i < convertedObjects_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(2, convertedObjects_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, 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.V1beta1Apiextensions.ConversionResponse)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse) obj;

      boolean result = true;
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid().equals(other.getUid());
      }
      result = result && getConvertedObjectsList().equals(other.getConvertedObjectsList());
      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 (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid().hashCode();
      }
      if (getConvertedObjectsCount() > 0) {
        hash = (37 * hash) + CONVERTEDOBJECTS_FIELD_NUMBER;
        hash = (53 * hash) + getConvertedObjectsList().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.V1beta1Apiextensions.ConversionResponse parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConversionResponse describes a conversion response.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse)
        io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionResponse_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (convertedObjectsBuilder_ == null) {
          convertedObjects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          convertedObjectsBuilder_.clear();
        }
        if (resultBuilder_ == null) {
          result_ = null;
        } else {
          resultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (convertedObjectsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            convertedObjects_ = java.util.Collections.unmodifiableList(convertedObjects_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.convertedObjects_ = convertedObjects_;
        } else {
          result.convertedObjects_ = convertedObjectsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        if (resultBuilder_ == null) {
          result.result_ = result_;
        } else {
          result.result_ = resultBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse
                .getDefaultInstance()) return this;
        if (other.hasUid()) {
          bitField0_ |= 0x00000001;
          uid_ = other.uid_;
          onChanged();
        }
        if (convertedObjectsBuilder_ == null) {
          if (!other.convertedObjects_.isEmpty()) {
            if (convertedObjects_.isEmpty()) {
              convertedObjects_ = other.convertedObjects_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureConvertedObjectsIsMutable();
              convertedObjects_.addAll(other.convertedObjects_);
            }
            onChanged();
          }
        } else {
          if (!other.convertedObjects_.isEmpty()) {
            if (convertedObjectsBuilder_.isEmpty()) {
              convertedObjectsBuilder_.dispose();
              convertedObjectsBuilder_ = null;
              convertedObjects_ = other.convertedObjects_;
              bitField0_ = (bitField0_ & ~0x00000002);
              convertedObjectsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConvertedObjectsFieldBuilder()
                      : null;
            } else {
              convertedObjectsBuilder_.addAllMessages(other.convertedObjects_);
            }
          }
        }
        if (other.hasResult()) {
          mergeResult(other.getResult());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object uid_ = "";
      /**
       *
       *
       * <pre>
       * `uid` is an identifier for the individual request/response.
       * This should be copied over from the corresponding AdmissionRequest.
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * `uid` is an identifier for the individual request/response.
       * This should be copied over from the corresponding AdmissionRequest.
       * </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>
       * `uid` is an identifier for the individual request/response.
       * This should be copied over from the corresponding AdmissionRequest.
       * </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>
       * `uid` is an identifier for the individual request/response.
       * This should be copied over from the corresponding AdmissionRequest.
       * </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>
       * `uid` is an identifier for the individual request/response.
       * This should be copied over from the corresponding AdmissionRequest.
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `uid` is an identifier for the individual request/response.
       * This should be copied over from the corresponding AdmissionRequest.
       * </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;
      }

      private java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> convertedObjects_ =
          java.util.Collections.emptyList();

      private void ensureConvertedObjectsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          convertedObjects_ =
              new java.util.ArrayList<io.kubernetes.client.proto.Runtime.RawExtension>(
                  convertedObjects_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension,
              io.kubernetes.client.proto.Runtime.RawExtension.Builder,
              io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          convertedObjectsBuilder_;

      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension>
          getConvertedObjectsList() {
        if (convertedObjectsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(convertedObjects_);
        } else {
          return convertedObjectsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public int getConvertedObjectsCount() {
        if (convertedObjectsBuilder_ == null) {
          return convertedObjects_.size();
        } else {
          return convertedObjectsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension getConvertedObjects(int index) {
        if (convertedObjectsBuilder_ == null) {
          return convertedObjects_.get(index);
        } else {
          return convertedObjectsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder setConvertedObjects(
          int index, io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (convertedObjectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConvertedObjectsIsMutable();
          convertedObjects_.set(index, value);
          onChanged();
        } else {
          convertedObjectsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder setConvertedObjects(
          int index, io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (convertedObjectsBuilder_ == null) {
          ensureConvertedObjectsIsMutable();
          convertedObjects_.set(index, builderForValue.build());
          onChanged();
        } else {
          convertedObjectsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder addConvertedObjects(io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (convertedObjectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConvertedObjectsIsMutable();
          convertedObjects_.add(value);
          onChanged();
        } else {
          convertedObjectsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder addConvertedObjects(
          int index, io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (convertedObjectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConvertedObjectsIsMutable();
          convertedObjects_.add(index, value);
          onChanged();
        } else {
          convertedObjectsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder addConvertedObjects(
          io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (convertedObjectsBuilder_ == null) {
          ensureConvertedObjectsIsMutable();
          convertedObjects_.add(builderForValue.build());
          onChanged();
        } else {
          convertedObjectsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder addConvertedObjects(
          int index, io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (convertedObjectsBuilder_ == null) {
          ensureConvertedObjectsIsMutable();
          convertedObjects_.add(index, builderForValue.build());
          onChanged();
        } else {
          convertedObjectsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder addAllConvertedObjects(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Runtime.RawExtension> values) {
        if (convertedObjectsBuilder_ == null) {
          ensureConvertedObjectsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, convertedObjects_);
          onChanged();
        } else {
          convertedObjectsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder clearConvertedObjects() {
        if (convertedObjectsBuilder_ == null) {
          convertedObjects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          convertedObjectsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public Builder removeConvertedObjects(int index) {
        if (convertedObjectsBuilder_ == null) {
          ensureConvertedObjectsIsMutable();
          convertedObjects_.remove(index);
          onChanged();
        } else {
          convertedObjectsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder getConvertedObjectsBuilder(
          int index) {
        return getConvertedObjectsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getConvertedObjectsOrBuilder(
          int index) {
        if (convertedObjectsBuilder_ == null) {
          return convertedObjects_.get(index);
        } else {
          return convertedObjectsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          getConvertedObjectsOrBuilderList() {
        if (convertedObjectsBuilder_ != null) {
          return convertedObjectsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(convertedObjects_);
        }
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder addConvertedObjectsBuilder() {
        return getConvertedObjectsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder addConvertedObjectsBuilder(
          int index) {
        return getConvertedObjectsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * `convertedObjects` is the list of converted version of `request.objects` if the `result` is successful otherwise empty.
       * The webhook is expected to set apiVersion of these objects to the ConversionRequest.desiredAPIVersion. The list
       * must also has the same size as input list with the same objects in the same order(i.e. equal UIDs and object meta)
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension convertedObjects = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension.Builder>
          getConvertedObjectsBuilderList() {
        return getConvertedObjectsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension,
              io.kubernetes.client.proto.Runtime.RawExtension.Builder,
              io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          getConvertedObjectsFieldBuilder() {
        if (convertedObjectsBuilder_ == null) {
          convertedObjectsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.Runtime.RawExtension,
                  io.kubernetes.client.proto.Runtime.RawExtension.Builder,
                  io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>(
                  convertedObjects_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          convertedObjects_ = null;
        }
        return convertedObjectsBuilder_;
      }

      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>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</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>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</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_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</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_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
       */
      public Builder mergeResult(io.kubernetes.client.proto.Meta.Status value) {
        if (resultBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && 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_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
       */
      public Builder clearResult() {
        if (resultBuilder_ == null) {
          result_ = null;
          onChanged();
        } else {
          resultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.Status.Builder getResultBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResultFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</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>
       * `result` contains the result of conversion with extra details if the conversion failed. `result.status` determines if
       * the conversion failed or succeeded. The `result.status` field is required and represent the success or failure of the
       * conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set
       * `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message`
       * will be used to construct an error message for the end user.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Status result = 3;</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_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface ConversionReviewOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * `request` describes the attributes for the conversion request.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
     * </code>
     */
    boolean hasRequest();
    /**
     *
     *
     * <pre>
     * `request` describes the attributes for the conversion request.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest getRequest();
    /**
     *
     *
     * <pre>
     * `request` describes the attributes for the conversion request.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder
        getRequestOrBuilder();

    /**
     *
     *
     * <pre>
     * `response` describes the attributes for the conversion response.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
     * </code>
     */
    boolean hasResponse();
    /**
     *
     *
     * <pre>
     * `response` describes the attributes for the conversion response.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse getResponse();
    /**
     *
     *
     * <pre>
     * `response` describes the attributes for the conversion response.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder
        getResponseOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ConversionReview describes a conversion request/response.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview}
   */
  public static final class ConversionReview extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview)
      ConversionReviewOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConversionReview.newBuilder() to construct.
    private ConversionReview(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConversionReview() {}

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

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

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

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

    private int bitField0_;
    public static final int REQUEST_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest request_;
    /**
     *
     *
     * <pre>
     * `request` describes the attributes for the conversion request.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
     * </code>
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * `request` describes the attributes for the conversion request.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest getRequest() {
      return request_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.getDefaultInstance()
          : request_;
    }
    /**
     *
     *
     * <pre>
     * `request` describes the attributes for the conversion request.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder
        getRequestOrBuilder() {
      return request_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.getDefaultInstance()
          : request_;
    }

    public static final int RESPONSE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse response_;
    /**
     *
     *
     * <pre>
     * `response` describes the attributes for the conversion response.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
     * </code>
     */
    public boolean hasResponse() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * `response` describes the attributes for the conversion response.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse getResponse() {
      return response_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.getDefaultInstance()
          : response_;
    }
    /**
     *
     *
     * <pre>
     * `response` describes the attributes for the conversion response.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder
        getResponseOrBuilder() {
      return response_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.getDefaultInstance()
          : response_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      boolean result = true;
      result = result && (hasRequest() == other.hasRequest());
      if (hasRequest()) {
        result = result && getRequest().equals(other.getRequest());
      }
      result = result && (hasResponse() == other.hasResponse());
      if (hasResponse()) {
        result = result && getResponse().equals(other.getResponse());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequest()) {
        hash = (37 * hash) + REQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getRequest().hashCode();
      }
      if (hasResponse()) {
        hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + getResponse().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConversionReview describes a conversion request/response.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview)
        io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReviewOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionReview_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (requestBuilder_ == null) {
          request_ = null;
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (responseBuilder_ == null) {
          response_ = null;
        } else {
          responseBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (requestBuilder_ == null) {
          result.request_ = request_;
        } else {
          result.request_ = requestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (responseBuilder_ == null) {
          result.response_ = response_;
        } else {
          result.response_ = responseBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview
                .getDefaultInstance()) return this;
        if (other.hasRequest()) {
          mergeRequest(other.getRequest());
        }
        if (other.hasResponse()) {
          mergeResponse(other.getResponse());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest request_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder>
          requestBuilder_;
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest getRequest() {
        if (requestBuilder_ == null) {
          return request_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest
                  .getDefaultInstance()
              : request_;
        } else {
          return requestBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public Builder setRequest(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest value) {
        if (requestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          requestBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public Builder setRequest(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.Builder
              builderForValue) {
        if (requestBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          requestBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public Builder mergeRequest(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest value) {
        if (requestBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && request_ != null
              && request_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest
                      .getDefaultInstance()) {
            request_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.newBuilder(
                        request_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          requestBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public Builder clearRequest() {
        if (requestBuilder_ == null) {
          request_ = null;
          onChanged();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.Builder
          getRequestBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getRequestFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder
          getRequestOrBuilder() {
        if (requestBuilder_ != null) {
          return requestBuilder_.getMessageOrBuilder();
        } else {
          return request_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest
                  .getDefaultInstance()
              : request_;
        }
      }
      /**
       *
       *
       * <pre>
       * `request` describes the attributes for the conversion request.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionRequest request = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder>
          getRequestFieldBuilder() {
        if (requestBuilder_ == null) {
          requestBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequest.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ConversionRequestOrBuilder>(
                  getRequest(), getParentForChildren(), isClean());
          request_ = null;
        }
        return requestBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse response_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder>
          responseBuilder_;
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse getResponse() {
        if (responseBuilder_ == null) {
          return response_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse
                  .getDefaultInstance()
              : response_;
        } else {
          return responseBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public Builder setResponse(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse value) {
        if (responseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          responseBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public Builder setResponse(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.Builder
              builderForValue) {
        if (responseBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          responseBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public Builder mergeResponse(
          io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse value) {
        if (responseBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && response_ != null
              && response_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse
                      .getDefaultInstance()) {
            response_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.newBuilder(
                        response_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          responseBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public Builder clearResponse() {
        if (responseBuilder_ == null) {
          response_ = null;
          onChanged();
        } else {
          responseBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.Builder
          getResponseBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getResponseFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder
          getResponseOrBuilder() {
        if (responseBuilder_ != null) {
          return responseBuilder_.getMessageOrBuilder();
        } else {
          return response_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse
                  .getDefaultInstance()
              : response_;
        }
      }
      /**
       *
       *
       * <pre>
       * `response` describes the attributes for the conversion response.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionResponse response = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder>
          getResponseFieldBuilder() {
        if (responseBuilder_ == null) {
          responseBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponse.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ConversionResponseOrBuilder>(
                  getResponse(), getParentForChildren(), isClean());
          response_ = null;
        }
        return responseBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ConversionReview)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ConversionReview
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceColumnDefinitionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     *
     *
     * <pre>
     * type is an OpenAPI type definition for this column.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * type is an OpenAPI type definition for this column.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * type is an OpenAPI type definition for this column.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * format is an optional OpenAPI type definition for this column. The 'name' format is applied
     * to the primary identifier column to assist in clients identifying column is the resource name.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * +optional
     * </pre>
     *
     * <code>optional string format = 3;</code>
     */
    boolean hasFormat();
    /**
     *
     *
     * <pre>
     * format is an optional OpenAPI type definition for this column. The 'name' format is applied
     * to the primary identifier column to assist in clients identifying column is the resource name.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * +optional
     * </pre>
     *
     * <code>optional string format = 3;</code>
     */
    java.lang.String getFormat();
    /**
     *
     *
     * <pre>
     * format is an optional OpenAPI type definition for this column. The 'name' format is applied
     * to the primary identifier column to assist in clients identifying column is the resource name.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * +optional
     * </pre>
     *
     * <code>optional string format = 3;</code>
     */
    com.google.protobuf.ByteString getFormatBytes();

    /**
     *
     *
     * <pre>
     * description is a human readable description of this column.
     * +optional
     * </pre>
     *
     * <code>optional string description = 4;</code>
     */
    boolean hasDescription();
    /**
     *
     *
     * <pre>
     * description is a human readable description of this column.
     * +optional
     * </pre>
     *
     * <code>optional string description = 4;</code>
     */
    java.lang.String getDescription();
    /**
     *
     *
     * <pre>
     * description is a human readable description of this column.
     * +optional
     * </pre>
     *
     * <code>optional string description = 4;</code>
     */
    com.google.protobuf.ByteString getDescriptionBytes();

    /**
     *
     *
     * <pre>
     * priority is an integer defining the relative importance of this column compared to others. Lower
     * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
     * should be given a higher priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 5;</code>
     */
    boolean hasPriority();
    /**
     *
     *
     * <pre>
     * priority is an integer defining the relative importance of this column compared to others. Lower
     * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
     * should be given a higher priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 5;</code>
     */
    int getPriority();

    /**
     *
     *
     * <pre>
     * JSONPath is a simple JSON path, i.e. with array notation.
     * </pre>
     *
     * <code>optional string JSONPath = 6;</code>
     */
    boolean hasJSONPath();
    /**
     *
     *
     * <pre>
     * JSONPath is a simple JSON path, i.e. with array notation.
     * </pre>
     *
     * <code>optional string JSONPath = 6;</code>
     */
    java.lang.String getJSONPath();
    /**
     *
     *
     * <pre>
     * JSONPath is a simple JSON path, i.e. with array notation.
     * </pre>
     *
     * <code>optional string JSONPath = 6;</code>
     */
    com.google.protobuf.ByteString getJSONPathBytes();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceColumnDefinition specifies a column for server side printing.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition}
   */
  public static final class CustomResourceColumnDefinition
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition)
      CustomResourceColumnDefinitionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceColumnDefinition.newBuilder() to construct.
    private CustomResourceColumnDefinition(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceColumnDefinition() {
      name_ = "";
      type_ = "";
      format_ = "";
      description_ = "";
      priority_ = 0;
      jSONPath_ = "";
    }

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

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

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

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

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * name is a human readable name for the column.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * name is a human readable name for the column.
     * </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 a human readable name for the column.
     * </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 TYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * type is an OpenAPI type definition for this column.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * type is an OpenAPI type definition for this column.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * type is an OpenAPI type definition for this column.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FORMAT_FIELD_NUMBER = 3;
    private volatile java.lang.Object format_;
    /**
     *
     *
     * <pre>
     * format is an optional OpenAPI type definition for this column. The 'name' format is applied
     * to the primary identifier column to assist in clients identifying column is the resource name.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * +optional
     * </pre>
     *
     * <code>optional string format = 3;</code>
     */
    public boolean hasFormat() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * format is an optional OpenAPI type definition for this column. The 'name' format is applied
     * to the primary identifier column to assist in clients identifying column is the resource name.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * +optional
     * </pre>
     *
     * <code>optional string format = 3;</code>
     */
    public java.lang.String getFormat() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          format_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * format is an optional OpenAPI type definition for this column. The 'name' format is applied
     * to the primary identifier column to assist in clients identifying column is the resource name.
     * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
     * +optional
     * </pre>
     *
     * <code>optional string format = 3;</code>
     */
    public com.google.protobuf.ByteString getFormatBytes() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        format_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 4;
    private volatile java.lang.Object description_;
    /**
     *
     *
     * <pre>
     * description is a human readable description of this column.
     * +optional
     * </pre>
     *
     * <code>optional string description = 4;</code>
     */
    public boolean hasDescription() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * description is a human readable description of this column.
     * +optional
     * </pre>
     *
     * <code>optional string description = 4;</code>
     */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          description_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * description is a human readable description of this column.
     * +optional
     * </pre>
     *
     * <code>optional string description = 4;</code>
     */
    public com.google.protobuf.ByteString getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRIORITY_FIELD_NUMBER = 5;
    private int priority_;
    /**
     *
     *
     * <pre>
     * priority is an integer defining the relative importance of this column compared to others. Lower
     * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
     * should be given a higher priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 5;</code>
     */
    public boolean hasPriority() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * priority is an integer defining the relative importance of this column compared to others. Lower
     * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
     * should be given a higher priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 5;</code>
     */
    public int getPriority() {
      return priority_;
    }

    public static final int JSONPATH_FIELD_NUMBER = 6;
    private volatile java.lang.Object jSONPath_;
    /**
     *
     *
     * <pre>
     * JSONPath is a simple JSON path, i.e. with array notation.
     * </pre>
     *
     * <code>optional string JSONPath = 6;</code>
     */
    public boolean hasJSONPath() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * JSONPath is a simple JSON path, i.e. with array notation.
     * </pre>
     *
     * <code>optional string JSONPath = 6;</code>
     */
    public java.lang.String getJSONPath() {
      java.lang.Object ref = jSONPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          jSONPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * JSONPath is a simple JSON path, i.e. with array notation.
     * </pre>
     *
     * <code>optional string JSONPath = 6;</code>
     */
    public com.google.protobuf.ByteString getJSONPathBytes() {
      java.lang.Object ref = jSONPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        jSONPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, type_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, format_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, description_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, priority_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, jSONPath_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, type_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, format_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, description_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, priority_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, jSONPath_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasFormat() == other.hasFormat());
      if (hasFormat()) {
        result = result && getFormat().equals(other.getFormat());
      }
      result = result && (hasDescription() == other.hasDescription());
      if (hasDescription()) {
        result = result && getDescription().equals(other.getDescription());
      }
      result = result && (hasPriority() == other.hasPriority());
      if (hasPriority()) {
        result = result && (getPriority() == other.getPriority());
      }
      result = result && (hasJSONPath() == other.hasJSONPath());
      if (hasJSONPath()) {
        result = result && getJSONPath().equals(other.getJSONPath());
      }
      result = result && unknownFields.equals(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 (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasFormat()) {
        hash = (37 * hash) + FORMAT_FIELD_NUMBER;
        hash = (53 * hash) + getFormat().hashCode();
      }
      if (hasDescription()) {
        hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getDescription().hashCode();
      }
      if (hasPriority()) {
        hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
        hash = (53 * hash) + getPriority();
      }
      if (hasJSONPath()) {
        hash = (37 * hash) + JSONPATH_FIELD_NUMBER;
        hash = (53 * hash) + getJSONPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceColumnDefinition specifies a column for server side printing.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        format_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        description_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        priority_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        jSONPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition(
                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.type_ = type_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.format_ = format_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.description_ = description_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.priority_ = priority_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.jSONPath_ = jSONPath_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                .getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000002;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasFormat()) {
          bitField0_ |= 0x00000004;
          format_ = other.format_;
          onChanged();
        }
        if (other.hasDescription()) {
          bitField0_ |= 0x00000008;
          description_ = other.description_;
          onChanged();
        }
        if (other.hasPriority()) {
          setPriority(other.getPriority());
        }
        if (other.hasJSONPath()) {
          bitField0_ |= 0x00000020;
          jSONPath_ = other.jSONPath_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * name is a human readable name for the column.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * name is a human readable name for the column.
       * </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 a human readable name for the column.
       * </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 a human readable name for the column.
       * </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 a human readable name for the column.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * name is a human readable name for the column.
       * </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 type_ = "";
      /**
       *
       *
       * <pre>
       * type is an OpenAPI type definition for this column.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * type is an OpenAPI type definition for this column.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * type is an OpenAPI type definition for this column.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * type is an OpenAPI type definition for this column.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * type is an OpenAPI type definition for this column.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * type is an OpenAPI type definition for this column.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object format_ = "";
      /**
       *
       *
       * <pre>
       * format is an optional OpenAPI type definition for this column. The 'name' format is applied
       * to the primary identifier column to assist in clients identifying column is the resource name.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * +optional
       * </pre>
       *
       * <code>optional string format = 3;</code>
       */
      public boolean hasFormat() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * format is an optional OpenAPI type definition for this column. The 'name' format is applied
       * to the primary identifier column to assist in clients identifying column is the resource name.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * +optional
       * </pre>
       *
       * <code>optional string format = 3;</code>
       */
      public java.lang.String getFormat() {
        java.lang.Object ref = format_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            format_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * format is an optional OpenAPI type definition for this column. The 'name' format is applied
       * to the primary identifier column to assist in clients identifying column is the resource name.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * +optional
       * </pre>
       *
       * <code>optional string format = 3;</code>
       */
      public com.google.protobuf.ByteString getFormatBytes() {
        java.lang.Object ref = format_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          format_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * format is an optional OpenAPI type definition for this column. The 'name' format is applied
       * to the primary identifier column to assist in clients identifying column is the resource name.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * +optional
       * </pre>
       *
       * <code>optional string format = 3;</code>
       */
      public Builder setFormat(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        format_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * format is an optional OpenAPI type definition for this column. The 'name' format is applied
       * to the primary identifier column to assist in clients identifying column is the resource name.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * +optional
       * </pre>
       *
       * <code>optional string format = 3;</code>
       */
      public Builder clearFormat() {
        bitField0_ = (bitField0_ & ~0x00000004);
        format_ = getDefaultInstance().getFormat();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * format is an optional OpenAPI type definition for this column. The 'name' format is applied
       * to the primary identifier column to assist in clients identifying column is the resource name.
       * See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
       * +optional
       * </pre>
       *
       * <code>optional string format = 3;</code>
       */
      public Builder setFormatBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        format_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       *
       *
       * <pre>
       * description is a human readable description of this column.
       * +optional
       * </pre>
       *
       * <code>optional string description = 4;</code>
       */
      public boolean hasDescription() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * description is a human readable description of this column.
       * +optional
       * </pre>
       *
       * <code>optional string description = 4;</code>
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            description_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * description is a human readable description of this column.
       * +optional
       * </pre>
       *
       * <code>optional string description = 4;</code>
       */
      public com.google.protobuf.ByteString getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * description is a human readable description of this column.
       * +optional
       * </pre>
       *
       * <code>optional string description = 4;</code>
       */
      public Builder setDescription(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        description_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * description is a human readable description of this column.
       * +optional
       * </pre>
       *
       * <code>optional string description = 4;</code>
       */
      public Builder clearDescription() {
        bitField0_ = (bitField0_ & ~0x00000008);
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * description is a human readable description of this column.
       * +optional
       * </pre>
       *
       * <code>optional string description = 4;</code>
       */
      public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        description_ = value;
        onChanged();
        return this;
      }

      private int priority_;
      /**
       *
       *
       * <pre>
       * priority is an integer defining the relative importance of this column compared to others. Lower
       * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
       * should be given a higher priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 5;</code>
       */
      public boolean hasPriority() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * priority is an integer defining the relative importance of this column compared to others. Lower
       * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
       * should be given a higher priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 5;</code>
       */
      public int getPriority() {
        return priority_;
      }
      /**
       *
       *
       * <pre>
       * priority is an integer defining the relative importance of this column compared to others. Lower
       * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
       * should be given a higher priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 5;</code>
       */
      public Builder setPriority(int value) {
        bitField0_ |= 0x00000010;
        priority_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * priority is an integer defining the relative importance of this column compared to others. Lower
       * numbers are considered higher priority. Columns that may be omitted in limited space scenarios
       * should be given a higher priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 5;</code>
       */
      public Builder clearPriority() {
        bitField0_ = (bitField0_ & ~0x00000010);
        priority_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object jSONPath_ = "";
      /**
       *
       *
       * <pre>
       * JSONPath is a simple JSON path, i.e. with array notation.
       * </pre>
       *
       * <code>optional string JSONPath = 6;</code>
       */
      public boolean hasJSONPath() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * JSONPath is a simple JSON path, i.e. with array notation.
       * </pre>
       *
       * <code>optional string JSONPath = 6;</code>
       */
      public java.lang.String getJSONPath() {
        java.lang.Object ref = jSONPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            jSONPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * JSONPath is a simple JSON path, i.e. with array notation.
       * </pre>
       *
       * <code>optional string JSONPath = 6;</code>
       */
      public com.google.protobuf.ByteString getJSONPathBytes() {
        java.lang.Object ref = jSONPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          jSONPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * JSONPath is a simple JSON path, i.e. with array notation.
       * </pre>
       *
       * <code>optional string JSONPath = 6;</code>
       */
      public Builder setJSONPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        jSONPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * JSONPath is a simple JSON path, i.e. with array notation.
       * </pre>
       *
       * <code>optional string JSONPath = 6;</code>
       */
      public Builder clearJSONPath() {
        bitField0_ = (bitField0_ & ~0x00000020);
        jSONPath_ = getDefaultInstance().getJSONPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * JSONPath is a simple JSON path, i.e. with array notation.
       * </pre>
       *
       * <code>optional string JSONPath = 6;</code>
       */
      public Builder setJSONPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        jSONPath_ = value;
        onChanged();
        return this;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceColumnDefinition
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceConversionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * `strategy` specifies the conversion strategy. Allowed values are:
     * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
     * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
     * </pre>
     *
     * <code>optional string strategy = 1;</code>
     */
    boolean hasStrategy();
    /**
     *
     *
     * <pre>
     * `strategy` specifies the conversion strategy. Allowed values are:
     * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
     * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
     * </pre>
     *
     * <code>optional string strategy = 1;</code>
     */
    java.lang.String getStrategy();
    /**
     *
     *
     * <pre>
     * `strategy` specifies the conversion strategy. Allowed values are:
     * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
     * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
     * </pre>
     *
     * <code>optional string strategy = 1;</code>
     */
    com.google.protobuf.ByteString getStrategyBytes();

    /**
     *
     *
     * <pre>
     * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
     * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
     * </code>
     */
    boolean hasWebhookClientConfig();
    /**
     *
     *
     * <pre>
     * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
     * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig getWebhookClientConfig();
    /**
     *
     *
     * <pre>
     * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
     * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder
        getWebhookClientConfigOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceConversion describes how to convert different versions of a CR.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion}
   */
  public static final class CustomResourceConversion extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion)
      CustomResourceConversionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceConversion.newBuilder() to construct.
    private CustomResourceConversion(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceConversion() {
      strategy_ = "";
    }

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

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

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

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

    private int bitField0_;
    public static final int STRATEGY_FIELD_NUMBER = 1;
    private volatile java.lang.Object strategy_;
    /**
     *
     *
     * <pre>
     * `strategy` specifies the conversion strategy. Allowed values are:
     * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
     * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
     * </pre>
     *
     * <code>optional string strategy = 1;</code>
     */
    public boolean hasStrategy() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * `strategy` specifies the conversion strategy. Allowed values are:
     * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
     * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
     * </pre>
     *
     * <code>optional string strategy = 1;</code>
     */
    public java.lang.String getStrategy() {
      java.lang.Object ref = strategy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          strategy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * `strategy` specifies the conversion strategy. Allowed values are:
     * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
     * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
     * </pre>
     *
     * <code>optional string strategy = 1;</code>
     */
    public com.google.protobuf.ByteString getStrategyBytes() {
      java.lang.Object ref = strategy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        strategy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int WEBHOOKCLIENTCONFIG_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        webhookClientConfig_;
    /**
     *
     *
     * <pre>
     * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
     * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
     * </code>
     */
    public boolean hasWebhookClientConfig() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
     * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        getWebhookClientConfig() {
      return webhookClientConfig_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.getDefaultInstance()
          : webhookClientConfig_;
    }
    /**
     *
     *
     * <pre>
     * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
     * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder
        getWebhookClientConfigOrBuilder() {
      return webhookClientConfig_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.getDefaultInstance()
          : webhookClientConfig_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      boolean result = true;
      result = result && (hasStrategy() == other.hasStrategy());
      if (hasStrategy()) {
        result = result && getStrategy().equals(other.getStrategy());
      }
      result = result && (hasWebhookClientConfig() == other.hasWebhookClientConfig());
      if (hasWebhookClientConfig()) {
        result = result && getWebhookClientConfig().equals(other.getWebhookClientConfig());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStrategy()) {
        hash = (37 * hash) + STRATEGY_FIELD_NUMBER;
        hash = (53 * hash) + getStrategy().hashCode();
      }
      if (hasWebhookClientConfig()) {
        hash = (37 * hash) + WEBHOOKCLIENTCONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getWebhookClientConfig().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceConversion describes how to convert different versions of a CR.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceConversion_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        strategy_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (webhookClientConfigBuilder_ == null) {
          webhookClientConfig_ = null;
        } else {
          webhookClientConfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.strategy_ = strategy_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (webhookClientConfigBuilder_ == null) {
          result.webhookClientConfig_ = webhookClientConfig_;
        } else {
          result.webhookClientConfig_ = webhookClientConfigBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
                .getDefaultInstance()) return this;
        if (other.hasStrategy()) {
          bitField0_ |= 0x00000001;
          strategy_ = other.strategy_;
          onChanged();
        }
        if (other.hasWebhookClientConfig()) {
          mergeWebhookClientConfig(other.getWebhookClientConfig());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object strategy_ = "";
      /**
       *
       *
       * <pre>
       * `strategy` specifies the conversion strategy. Allowed values are:
       * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
       * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
       * </pre>
       *
       * <code>optional string strategy = 1;</code>
       */
      public boolean hasStrategy() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * `strategy` specifies the conversion strategy. Allowed values are:
       * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
       * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
       * </pre>
       *
       * <code>optional string strategy = 1;</code>
       */
      public java.lang.String getStrategy() {
        java.lang.Object ref = strategy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            strategy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `strategy` specifies the conversion strategy. Allowed values are:
       * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
       * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
       * </pre>
       *
       * <code>optional string strategy = 1;</code>
       */
      public com.google.protobuf.ByteString getStrategyBytes() {
        java.lang.Object ref = strategy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          strategy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `strategy` specifies the conversion strategy. Allowed values are:
       * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
       * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
       * </pre>
       *
       * <code>optional string strategy = 1;</code>
       */
      public Builder setStrategy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        strategy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `strategy` specifies the conversion strategy. Allowed values are:
       * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
       * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
       * </pre>
       *
       * <code>optional string strategy = 1;</code>
       */
      public Builder clearStrategy() {
        bitField0_ = (bitField0_ & ~0x00000001);
        strategy_ = getDefaultInstance().getStrategy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `strategy` specifies the conversion strategy. Allowed values are:
       * - `None`: The converter only change the apiVersion and would not touch any other field in the CR.
       * - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.
       * </pre>
       *
       * <code>optional string strategy = 1;</code>
       */
      public Builder setStrategyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        strategy_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
          webhookClientConfig_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig,
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder>
          webhookClientConfigBuilder_;
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public boolean hasWebhookClientConfig() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
          getWebhookClientConfig() {
        if (webhookClientConfigBuilder_ == null) {
          return webhookClientConfig_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
                  .getDefaultInstance()
              : webhookClientConfig_;
        } else {
          return webhookClientConfigBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public Builder setWebhookClientConfig(
          io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig value) {
        if (webhookClientConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          webhookClientConfig_ = value;
          onChanged();
        } else {
          webhookClientConfigBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public Builder setWebhookClientConfig(
          io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder
              builderForValue) {
        if (webhookClientConfigBuilder_ == null) {
          webhookClientConfig_ = builderForValue.build();
          onChanged();
        } else {
          webhookClientConfigBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public Builder mergeWebhookClientConfig(
          io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig value) {
        if (webhookClientConfigBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && webhookClientConfig_ != null
              && webhookClientConfig_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
                      .getDefaultInstance()) {
            webhookClientConfig_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.newBuilder(
                        webhookClientConfig_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            webhookClientConfig_ = value;
          }
          onChanged();
        } else {
          webhookClientConfigBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public Builder clearWebhookClientConfig() {
        if (webhookClientConfigBuilder_ == null) {
          webhookClientConfig_ = null;
          onChanged();
        } else {
          webhookClientConfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder
          getWebhookClientConfigBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getWebhookClientConfigFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder
          getWebhookClientConfigOrBuilder() {
        if (webhookClientConfigBuilder_ != null) {
          return webhookClientConfigBuilder_.getMessageOrBuilder();
        } else {
          return webhookClientConfig_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
                  .getDefaultInstance()
              : webhookClientConfig_;
        }
      }
      /**
       *
       *
       * <pre>
       * `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is
       * alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig webhookClientConfig = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig,
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder>
          getWebhookClientConfigFieldBuilder() {
        if (webhookClientConfigBuilder_ == null) {
          webhookClientConfigBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig,
                  io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder>(
                  getWebhookClientConfig(), getParentForChildren(), isClean());
          webhookClientConfig_ = null;
        }
        return webhookClientConfigBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code> */
    boolean hasMetadata();
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code> */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code> */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec describes how the user wants the resources to appear
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
     * </code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec describes how the user wants the resources to appear
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec describes how the user wants the resources to appear
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpecOrBuilder
        getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Status indicates the actual state of the CustomResourceDefinition
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
     * </code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status indicates the actual state of the CustomResourceDefinition
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status indicates the actual state of the CustomResourceDefinition
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatusOrBuilder
        getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format
   * &lt;.spec.name&gt;.&lt;.spec.group&gt;.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition}
   */
  public static final class CustomResourceDefinition extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition)
      CustomResourceDefinitionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinition.newBuilder() to construct.
    private CustomResourceDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinition() {}

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

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

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

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

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code> */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code> */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code> */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec describes how the user wants the resources to appear
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
     * </code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec describes how the user wants the resources to appear
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
              .getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec describes how the user wants the resources to appear
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpecOrBuilder
        getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
              .getDefaultInstance()
          : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus status_;
    /**
     *
     *
     * <pre>
     * Status indicates the actual state of the CustomResourceDefinition
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
     * </code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Status indicates the actual state of the CustomResourceDefinition
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
        getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
              .getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status indicates the actual state of the CustomResourceDefinition
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatusOrBuilder
        getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
              .getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format
     * &lt;.spec.name&gt;.&lt;.spec.group&gt;.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition_descriptor;
      }

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

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

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

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

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

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition
                .getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

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

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec spec_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
          getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
                  .getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec.Builder
              builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public Builder mergeSpec(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
                      .getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
                    .newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec.Builder
          getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpecOrBuilder
          getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
                  .getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec describes how the user wants the resources to appear
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec spec = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
          status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
          getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                  .getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus.Builder
              builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public Builder mergeStatus(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                      .getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                    .newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus.Builder
          getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatusOrBuilder
          getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                  .getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status indicates the actual state of the CustomResourceDefinition
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus status = 3;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionConditionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    java.lang.String getStatus();
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    com.google.protobuf.ByteString getStatusBytes();

    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    boolean hasLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinitionCondition contains details for the current condition of this pod.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition}
   */
  public static final class CustomResourceDefinitionCondition
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition)
      CustomResourceDefinitionConditionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinitionCondition.newBuilder() to construct.
    private CustomResourceDefinitionCondition(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinitionCondition() {
      type_ = "";
      status_ = "";
      reason_ = "";
      message_ = "";
    }

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

    private CustomResourceDefinitionCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                status_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastTransitionTime_.toBuilder();
                }
                lastTransitionTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastTransitionTime_);
                  lastTransitionTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                reason_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          status_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public com.google.protobuf.ByteString getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LASTTRANSITIONTIME_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.Time lastTransitionTime_;
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    public boolean hasLastTransitionTime() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }

    public static final int REASON_FIELD_NUMBER = 4;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 5;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, message_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasLastTransitionTime() == other.hasLastTransitionTime());
      if (hasLastTransitionTime()) {
        result = result && getLastTransitionTime().equals(other.getLastTransitionTime());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasLastTransitionTime()) {
        hash = (37 * hash) + LASTTRANSITIONTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastTransitionTime().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinitionCondition contains details for the current condition of this pod.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition(
                this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastTransitionTimeBuilder_ == null) {
          result.lastTransitionTime_ = lastTransitionTime_;
        } else {
          result.lastTransitionTime_ = lastTransitionTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                .getDefaultInstance()) return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasLastTransitionTime()) {
          mergeLastTransitionTime(other.getLastTransitionTime());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000008;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000010;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object status_ = "";
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            status_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public com.google.protobuf.ByteString getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatus(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatusBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time lastTransitionTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastTransitionTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public boolean hasLastTransitionTime() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        } else {
          return lastTransitionTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder setLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTransitionTime_ = value;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder setLastTransitionTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = builderForValue.build();
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder mergeLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastTransitionTime_ != null
              && lastTransitionTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastTransitionTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastTransitionTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastTransitionTime_ = value;
          }
          onChanged();
        } else {
          lastTransitionTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder clearLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastTransitionTimeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastTransitionTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
        if (lastTransitionTimeBuilder_ != null) {
          return lastTransitionTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastTransitionTimeFieldBuilder() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastTransitionTime(), getParentForChildren(), isClean());
          lastTransitionTime_ = null;
        }
        return lastTransitionTimeBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        message_ = value;
        onChanged();
        return this;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionCondition
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
    boolean hasMetadata();
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>
        getItemsList();
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition getItems(int index);
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder
        getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList}
   */
  public static final class CustomResourceDefinitionList
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList)
      CustomResourceDefinitionListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinitionList.newBuilder() to construct.
    private CustomResourceDefinitionList(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinitionList() {
      items_ = java.util.Collections.emptyList();
    }

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

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

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

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

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <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_;
    }
    /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>
        items_;
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>
        getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    public java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition getItems(
        int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items individual CustomResourceDefinitions
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder
        getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList_descriptor;
      }

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

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

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

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

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

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList
                .getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList parsedMessage =
            null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList)
                  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_;
      /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /** <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();
        }
      }
      /** <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;
      }
      /** <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;
      }
      /** <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;
      }
      /** <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;
      }
      /** <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();
      }
      /** <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_;
        }
      }
      /** <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code> */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>
          items_ = java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>
          getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition getItems(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder setItems(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder setItems(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder
              builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder addItems(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder
              builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder addItems(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder
              builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder addAllItems(
          java.lang.Iterable<
                  ? extends
                      io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition>
              values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder
          getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder
          getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public java.util.List<
              ? extends
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder
          addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder
          addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items individual CustomResourceDefinitions
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition items = 2;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinition.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionList
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionList
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionNamesOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
     * too: plural.group and it must be all lowercase.
     * </pre>
     *
     * <code>optional string plural = 1;</code>
     */
    boolean hasPlural();
    /**
     *
     *
     * <pre>
     * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
     * too: plural.group and it must be all lowercase.
     * </pre>
     *
     * <code>optional string plural = 1;</code>
     */
    java.lang.String getPlural();
    /**
     *
     *
     * <pre>
     * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
     * too: plural.group and it must be all lowercase.
     * </pre>
     *
     * <code>optional string plural = 1;</code>
     */
    com.google.protobuf.ByteString getPluralBytes();

    /**
     *
     *
     * <pre>
     * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
     * +optional
     * </pre>
     *
     * <code>optional string singular = 2;</code>
     */
    boolean hasSingular();
    /**
     *
     *
     * <pre>
     * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
     * +optional
     * </pre>
     *
     * <code>optional string singular = 2;</code>
     */
    java.lang.String getSingular();
    /**
     *
     *
     * <pre>
     * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
     * +optional
     * </pre>
     *
     * <code>optional string singular = 2;</code>
     */
    com.google.protobuf.ByteString getSingularBytes();

    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    java.util.List<java.lang.String> getShortNamesList();
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    int getShortNamesCount();
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    java.lang.String getShortNames(int index);
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    com.google.protobuf.ByteString getShortNamesBytes(int index);

    /**
     *
     *
     * <pre>
     * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
     * </pre>
     *
     * <code>optional string kind = 4;</code>
     */
    boolean hasKind();
    /**
     *
     *
     * <pre>
     * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
     * </pre>
     *
     * <code>optional string kind = 4;</code>
     */
    java.lang.String getKind();
    /**
     *
     *
     * <pre>
     * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
     * </pre>
     *
     * <code>optional string kind = 4;</code>
     */
    com.google.protobuf.ByteString getKindBytes();

    /**
     *
     *
     * <pre>
     * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
     * +optional
     * </pre>
     *
     * <code>optional string listKind = 5;</code>
     */
    boolean hasListKind();
    /**
     *
     *
     * <pre>
     * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
     * +optional
     * </pre>
     *
     * <code>optional string listKind = 5;</code>
     */
    java.lang.String getListKind();
    /**
     *
     *
     * <pre>
     * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
     * +optional
     * </pre>
     *
     * <code>optional string listKind = 5;</code>
     */
    com.google.protobuf.ByteString getListKindBytes();

    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    java.util.List<java.lang.String> getCategoriesList();
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    int getCategoriesCount();
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    java.lang.String getCategories(int index);
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    com.google.protobuf.ByteString getCategoriesBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames}
   */
  public static final class CustomResourceDefinitionNames
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames)
      CustomResourceDefinitionNamesOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinitionNames.newBuilder() to construct.
    private CustomResourceDefinitionNames(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinitionNames() {
      plural_ = "";
      singular_ = "";
      shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      kind_ = "";
      listKind_ = "";
      categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

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

    private CustomResourceDefinitionNames(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                plural_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                singular_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  shortNames_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                shortNames_.add(bs);
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                kind_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                listKind_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  categories_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000020;
                }
                categories_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          shortNames_ = shortNames_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          categories_ = categories_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private int bitField0_;
    public static final int PLURAL_FIELD_NUMBER = 1;
    private volatile java.lang.Object plural_;
    /**
     *
     *
     * <pre>
     * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
     * too: plural.group and it must be all lowercase.
     * </pre>
     *
     * <code>optional string plural = 1;</code>
     */
    public boolean hasPlural() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
     * too: plural.group and it must be all lowercase.
     * </pre>
     *
     * <code>optional string plural = 1;</code>
     */
    public java.lang.String getPlural() {
      java.lang.Object ref = plural_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          plural_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
     * too: plural.group and it must be all lowercase.
     * </pre>
     *
     * <code>optional string plural = 1;</code>
     */
    public com.google.protobuf.ByteString getPluralBytes() {
      java.lang.Object ref = plural_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        plural_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SINGULAR_FIELD_NUMBER = 2;
    private volatile java.lang.Object singular_;
    /**
     *
     *
     * <pre>
     * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
     * +optional
     * </pre>
     *
     * <code>optional string singular = 2;</code>
     */
    public boolean hasSingular() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
     * +optional
     * </pre>
     *
     * <code>optional string singular = 2;</code>
     */
    public java.lang.String getSingular() {
      java.lang.Object ref = singular_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          singular_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
     * +optional
     * </pre>
     *
     * <code>optional string singular = 2;</code>
     */
    public com.google.protobuf.ByteString getSingularBytes() {
      java.lang.Object ref = singular_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        singular_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHORTNAMES_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList shortNames_;
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList getShortNamesList() {
      return shortNames_;
    }
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    public int getShortNamesCount() {
      return shortNames_.size();
    }
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    public java.lang.String getShortNames(int index) {
      return shortNames_.get(index);
    }
    /**
     *
     *
     * <pre>
     * ShortNames are short names for the resource.  It must be all lowercase.
     * +optional
     * </pre>
     *
     * <code>repeated string shortNames = 3;</code>
     */
    public com.google.protobuf.ByteString getShortNamesBytes(int index) {
      return shortNames_.getByteString(index);
    }

    public static final int KIND_FIELD_NUMBER = 4;
    private volatile java.lang.Object kind_;
    /**
     *
     *
     * <pre>
     * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
     * </pre>
     *
     * <code>optional string kind = 4;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
     * </pre>
     *
     * <code>optional string kind = 4;</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 serialized kind of the resource.  It is normally CamelCase and singular.
     * </pre>
     *
     * <code>optional string kind = 4;</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 LISTKIND_FIELD_NUMBER = 5;
    private volatile java.lang.Object listKind_;
    /**
     *
     *
     * <pre>
     * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
     * +optional
     * </pre>
     *
     * <code>optional string listKind = 5;</code>
     */
    public boolean hasListKind() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
     * +optional
     * </pre>
     *
     * <code>optional string listKind = 5;</code>
     */
    public java.lang.String getListKind() {
      java.lang.Object ref = listKind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          listKind_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
     * +optional
     * </pre>
     *
     * <code>optional string listKind = 5;</code>
     */
    public com.google.protobuf.ByteString getListKindBytes() {
      java.lang.Object ref = listKind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        listKind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CATEGORIES_FIELD_NUMBER = 6;
    private com.google.protobuf.LazyStringList categories_;
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    public com.google.protobuf.ProtocolStringList getCategoriesList() {
      return categories_;
    }
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    public int getCategoriesCount() {
      return categories_.size();
    }
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    public java.lang.String getCategories(int index) {
      return categories_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
     * +optional
     * </pre>
     *
     * <code>repeated string categories = 6;</code>
     */
    public com.google.protobuf.ByteString getCategoriesBytes(int index) {
      return categories_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, plural_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, singular_);
      }
      for (int i = 0; i < shortNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, shortNames_.getRaw(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, kind_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, listKind_);
      }
      for (int i = 0; i < categories_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, categories_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, plural_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, singular_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < shortNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(shortNames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getShortNamesList().size();
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, kind_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, listKind_);
      }
      {
        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.V1beta1Apiextensions.CustomResourceDefinitionNames)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames) obj;

      boolean result = true;
      result = result && (hasPlural() == other.hasPlural());
      if (hasPlural()) {
        result = result && getPlural().equals(other.getPlural());
      }
      result = result && (hasSingular() == other.hasSingular());
      if (hasSingular()) {
        result = result && getSingular().equals(other.getSingular());
      }
      result = result && getShortNamesList().equals(other.getShortNamesList());
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind().equals(other.getKind());
      }
      result = result && (hasListKind() == other.hasListKind());
      if (hasListKind()) {
        result = result && getListKind().equals(other.getListKind());
      }
      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 (hasPlural()) {
        hash = (37 * hash) + PLURAL_FIELD_NUMBER;
        hash = (53 * hash) + getPlural().hashCode();
      }
      if (hasSingular()) {
        hash = (37 * hash) + SINGULAR_FIELD_NUMBER;
        hash = (53 * hash) + getSingular().hashCode();
      }
      if (getShortNamesCount() > 0) {
        hash = (37 * hash) + SHORTNAMES_FIELD_NUMBER;
        hash = (53 * hash) + getShortNamesList().hashCode();
      }
      if (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      if (hasListKind()) {
        hash = (37 * hash) + LISTKIND_FIELD_NUMBER;
        hash = (53 * hash) + getListKind().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.V1beta1Apiextensions.CustomResourceDefinitionNames
        parseFrom(java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        plural_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        singular_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        listKind_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.plural_ = plural_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.singular_ = singular_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          shortNames_ = shortNames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.shortNames_ = shortNames_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.kind_ = kind_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.listKind_ = listKind_;
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          categories_ = categories_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.categories_ = categories_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                .getDefaultInstance()) return this;
        if (other.hasPlural()) {
          bitField0_ |= 0x00000001;
          plural_ = other.plural_;
          onChanged();
        }
        if (other.hasSingular()) {
          bitField0_ |= 0x00000002;
          singular_ = other.singular_;
          onChanged();
        }
        if (!other.shortNames_.isEmpty()) {
          if (shortNames_.isEmpty()) {
            shortNames_ = other.shortNames_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureShortNamesIsMutable();
            shortNames_.addAll(other.shortNames_);
          }
          onChanged();
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000008;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasListKind()) {
          bitField0_ |= 0x00000010;
          listKind_ = other.listKind_;
          onChanged();
        }
        if (!other.categories_.isEmpty()) {
          if (categories_.isEmpty()) {
            categories_ = other.categories_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureCategoriesIsMutable();
            categories_.addAll(other.categories_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object plural_ = "";
      /**
       *
       *
       * <pre>
       * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
       * too: plural.group and it must be all lowercase.
       * </pre>
       *
       * <code>optional string plural = 1;</code>
       */
      public boolean hasPlural() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
       * too: plural.group and it must be all lowercase.
       * </pre>
       *
       * <code>optional string plural = 1;</code>
       */
      public java.lang.String getPlural() {
        java.lang.Object ref = plural_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            plural_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
       * too: plural.group and it must be all lowercase.
       * </pre>
       *
       * <code>optional string plural = 1;</code>
       */
      public com.google.protobuf.ByteString getPluralBytes() {
        java.lang.Object ref = plural_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          plural_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
       * too: plural.group and it must be all lowercase.
       * </pre>
       *
       * <code>optional string plural = 1;</code>
       */
      public Builder setPlural(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        plural_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
       * too: plural.group and it must be all lowercase.
       * </pre>
       *
       * <code>optional string plural = 1;</code>
       */
      public Builder clearPlural() {
        bitField0_ = (bitField0_ & ~0x00000001);
        plural_ = getDefaultInstance().getPlural();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration
       * too: plural.group and it must be all lowercase.
       * </pre>
       *
       * <code>optional string plural = 1;</code>
       */
      public Builder setPluralBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        plural_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object singular_ = "";
      /**
       *
       *
       * <pre>
       * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
       * +optional
       * </pre>
       *
       * <code>optional string singular = 2;</code>
       */
      public boolean hasSingular() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
       * +optional
       * </pre>
       *
       * <code>optional string singular = 2;</code>
       */
      public java.lang.String getSingular() {
        java.lang.Object ref = singular_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            singular_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
       * +optional
       * </pre>
       *
       * <code>optional string singular = 2;</code>
       */
      public com.google.protobuf.ByteString getSingularBytes() {
        java.lang.Object ref = singular_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          singular_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
       * +optional
       * </pre>
       *
       * <code>optional string singular = 2;</code>
       */
      public Builder setSingular(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        singular_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
       * +optional
       * </pre>
       *
       * <code>optional string singular = 2;</code>
       */
      public Builder clearSingular() {
        bitField0_ = (bitField0_ & ~0x00000002);
        singular_ = getDefaultInstance().getSingular();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased &lt;kind&gt;
       * +optional
       * </pre>
       *
       * <code>optional string singular = 2;</code>
       */
      public Builder setSingularBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        singular_ = value;
        onChanged();
        return this;
      }

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

      private void ensureShortNamesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          shortNames_ = new com.google.protobuf.LazyStringArrayList(shortNames_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList getShortNamesList() {
        return shortNames_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public int getShortNamesCount() {
        return shortNames_.size();
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public java.lang.String getShortNames(int index) {
        return shortNames_.get(index);
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public com.google.protobuf.ByteString getShortNamesBytes(int index) {
        return shortNames_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</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 are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public Builder addShortNames(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureShortNamesIsMutable();
        shortNames_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</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 are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public Builder clearShortNames() {
        shortNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ShortNames are short names for the resource.  It must be all lowercase.
       * +optional
       * </pre>
       *
       * <code>repeated string shortNames = 3;</code>
       */
      public Builder addShortNamesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureShortNamesIsMutable();
        shortNames_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       *
       *
       * <pre>
       * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
       * </pre>
       *
       * <code>optional string kind = 4;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
       * </pre>
       *
       * <code>optional string kind = 4;</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 serialized kind of the resource.  It is normally CamelCase and singular.
       * </pre>
       *
       * <code>optional string kind = 4;</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 serialized kind of the resource.  It is normally CamelCase and singular.
       * </pre>
       *
       * <code>optional string kind = 4;</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 serialized kind of the resource.  It is normally CamelCase and singular.
       * </pre>
       *
       * <code>optional string kind = 4;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kind is the serialized kind of the resource.  It is normally CamelCase and singular.
       * </pre>
       *
       * <code>optional string kind = 4;</code>
       */
      public Builder setKindBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        kind_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object listKind_ = "";
      /**
       *
       *
       * <pre>
       * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
       * +optional
       * </pre>
       *
       * <code>optional string listKind = 5;</code>
       */
      public boolean hasListKind() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
       * +optional
       * </pre>
       *
       * <code>optional string listKind = 5;</code>
       */
      public java.lang.String getListKind() {
        java.lang.Object ref = listKind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            listKind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
       * +optional
       * </pre>
       *
       * <code>optional string listKind = 5;</code>
       */
      public com.google.protobuf.ByteString getListKindBytes() {
        java.lang.Object ref = listKind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          listKind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
       * +optional
       * </pre>
       *
       * <code>optional string listKind = 5;</code>
       */
      public Builder setListKind(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        listKind_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
       * +optional
       * </pre>
       *
       * <code>optional string listKind = 5;</code>
       */
      public Builder clearListKind() {
        bitField0_ = (bitField0_ & ~0x00000010);
        listKind_ = getDefaultInstance().getListKind();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ListKind is the serialized kind of the list for this resource.  Defaults to &lt;kind&gt;List.
       * +optional
       * </pre>
       *
       * <code>optional string listKind = 5;</code>
       */
      public Builder setListKindBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        listKind_ = value;
        onChanged();
        return this;
      }

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

      private void ensureCategoriesIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          categories_ = new com.google.protobuf.LazyStringArrayList(categories_);
          bitField0_ |= 0x00000020;
        }
      }
      /**
       *
       *
       * <pre>
       * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</code>
       */
      public com.google.protobuf.ProtocolStringList getCategoriesList() {
        return categories_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</code>
       */
      public int getCategoriesCount() {
        return categories_.size();
      }
      /**
       *
       *
       * <pre>
       * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</code>
       */
      public java.lang.String getCategories(int index) {
        return categories_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</code>
       */
      public com.google.protobuf.ByteString getCategoriesBytes(int index) {
        return categories_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</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 grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</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 grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</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 grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</code>
       */
      public Builder clearCategories() {
        categories_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Categories is a list of grouped resources custom resources belong to (e.g. 'all')
       * +optional
       * </pre>
       *
       * <code>repeated string categories = 6;</code>
       */
      public Builder addCategoriesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCategoriesIsMutable();
        categories_.add(value);
        onChanged();
        return this;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionNames
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Group is the group this resource belongs in
     * </pre>
     *
     * <code>optional string group = 1;</code>
     */
    boolean hasGroup();
    /**
     *
     *
     * <pre>
     * Group is the group this resource belongs in
     * </pre>
     *
     * <code>optional string group = 1;</code>
     */
    java.lang.String getGroup();
    /**
     *
     *
     * <pre>
     * Group is the group this resource belongs in
     * </pre>
     *
     * <code>optional string group = 1;</code>
     */
    com.google.protobuf.ByteString getGroupBytes();

    /**
     *
     *
     * <pre>
     * Version is the version this resource belongs in
     * Should be always first item in Versions field if provided.
     * Optional, but at least one of Version or Versions must be set.
     * Deprecated: Please use `Versions`.
     * +optional
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    boolean hasVersion();
    /**
     *
     *
     * <pre>
     * Version is the version this resource belongs in
     * Should be always first item in Versions field if provided.
     * Optional, but at least one of Version or Versions must be set.
     * Deprecated: Please use `Versions`.
     * +optional
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    java.lang.String getVersion();
    /**
     *
     *
     * <pre>
     * Version is the version this resource belongs in
     * Should be always first item in Versions field if provided.
     * Optional, but at least one of Version or Versions must be set.
     * Deprecated: Please use `Versions`.
     * +optional
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    com.google.protobuf.ByteString getVersionBytes();

    /**
     *
     *
     * <pre>
     * Names are the names used to describe this custom resource
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
     * </code>
     */
    boolean hasNames();
    /**
     *
     *
     * <pre>
     * Names are the names used to describe this custom resource
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames getNames();
    /**
     *
     *
     * <pre>
     * Names are the names used to describe this custom resource
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder
        getNamesOrBuilder();

    /**
     *
     *
     * <pre>
     * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
     * </pre>
     *
     * <code>optional string scope = 4;</code>
     */
    boolean hasScope();
    /**
     *
     *
     * <pre>
     * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
     * </pre>
     *
     * <code>optional string scope = 4;</code>
     */
    java.lang.String getScope();
    /**
     *
     *
     * <pre>
     * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
     * </pre>
     *
     * <code>optional string scope = 4;</code>
     */
    com.google.protobuf.ByteString getScopeBytes();

    /**
     *
     *
     * <pre>
     * Validation describes the validation methods for CustomResources
     * Optional, the global validation schema for all versions.
     * Top-level and per-version schemas are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
     * </code>
     */
    boolean hasValidation();
    /**
     *
     *
     * <pre>
     * Validation describes the validation methods for CustomResources
     * Optional, the global validation schema for all versions.
     * Top-level and per-version schemas are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation getValidation();
    /**
     *
     *
     * <pre>
     * Validation describes the validation methods for CustomResources
     * Optional, the global validation schema for all versions.
     * Top-level and per-version schemas are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder
        getValidationOrBuilder();

    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Optional, the global subresources for all versions.
     * Top-level and per-version subresources are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
     * </code>
     */
    boolean hasSubresources();
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Optional, the global subresources for all versions.
     * Top-level and per-version subresources are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources getSubresources();
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Optional, the global subresources for all versions.
     * Top-level and per-version subresources are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder
        getSubresourcesOrBuilder();

    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion>
        getVersionsList();
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion getVersions(
        int index);
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    int getVersionsCount();
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceDefinitionVersionOrBuilder>
        getVersionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersionOrBuilder
        getVersionsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
        getAdditionalPrinterColumnsList();
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
        getAdditionalPrinterColumns(int index);
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    int getAdditionalPrinterColumnsCount();
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceColumnDefinitionOrBuilder>
        getAdditionalPrinterColumnsOrBuilderList();
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder
        getAdditionalPrinterColumnsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * `conversion` defines conversion settings for the CRD.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
     * </code>
     */
    boolean hasConversion();
    /**
     *
     *
     * <pre>
     * `conversion` defines conversion settings for the CRD.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion getConversion();
    /**
     *
     *
     * <pre>
     * `conversion` defines conversion settings for the CRD.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversionOrBuilder
        getConversionOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinitionSpec describes how a user wants their resource to appear
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec}
   */
  public static final class CustomResourceDefinitionSpec
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec)
      CustomResourceDefinitionSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinitionSpec.newBuilder() to construct.
    private CustomResourceDefinitionSpec(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinitionSpec() {
      group_ = "";
      version_ = "";
      scope_ = "";
      versions_ = java.util.Collections.emptyList();
      additionalPrinterColumns_ = java.util.Collections.emptyList();
    }

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

    private CustomResourceDefinitionSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                group_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                version_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                        .Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = names_.toBuilder();
                }
                names_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .CustomResourceDefinitionNames.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(names_);
                  names_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                scope_ = bs;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = validation_.toBuilder();
                }
                validation_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(validation_);
                  validation_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = subresources_.toBuilder();
                }
                subresources_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(subresources_);
                  subresources_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 58:
              {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  versions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .CustomResourceDefinitionVersion>();
                  mutable_bitField0_ |= 0x00000040;
                }
                versions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .CustomResourceDefinitionVersion.PARSER,
                        extensionRegistry));
                break;
              }
            case 66:
              {
                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                  additionalPrinterColumns_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .CustomResourceColumnDefinition>();
                  mutable_bitField0_ |= 0x00000080;
                }
                additionalPrinterColumns_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .CustomResourceColumnDefinition.PARSER,
                        extensionRegistry));
                break;
              }
            case 74:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = conversion_.toBuilder();
                }
                conversion_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(conversion_);
                  conversion_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          versions_ = java.util.Collections.unmodifiableList(versions_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          additionalPrinterColumns_ =
              java.util.Collections.unmodifiableList(additionalPrinterColumns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private int bitField0_;
    public static final int GROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object group_;
    /**
     *
     *
     * <pre>
     * Group is the group this resource belongs in
     * </pre>
     *
     * <code>optional string group = 1;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Group is the group this resource belongs in
     * </pre>
     *
     * <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;
      }
    }
    /**
     *
     *
     * <pre>
     * Group is the group this resource belongs in
     * </pre>
     *
     * <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_;
    /**
     *
     *
     * <pre>
     * Version is the version this resource belongs in
     * Should be always first item in Versions field if provided.
     * Optional, but at least one of Version or Versions must be set.
     * Deprecated: Please use `Versions`.
     * +optional
     * </pre>
     *
     * <code>optional string version = 2;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Version is the version this resource belongs in
     * Should be always first item in Versions field if provided.
     * Optional, but at least one of Version or Versions must be set.
     * Deprecated: Please use `Versions`.
     * +optional
     * </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 is the version this resource belongs in
     * Should be always first item in Versions field if provided.
     * Optional, but at least one of Version or Versions must be set.
     * Deprecated: Please use `Versions`.
     * +optional
     * </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;
      }
    }

    public static final int NAMES_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames names_;
    /**
     *
     *
     * <pre>
     * Names are the names used to describe this custom resource
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
     * </code>
     */
    public boolean hasNames() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Names are the names used to describe this custom resource
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
        getNames() {
      return names_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
              .getDefaultInstance()
          : names_;
    }
    /**
     *
     *
     * <pre>
     * Names are the names used to describe this custom resource
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder
        getNamesOrBuilder() {
      return names_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
              .getDefaultInstance()
          : names_;
    }

    public static final int SCOPE_FIELD_NUMBER = 4;
    private volatile java.lang.Object scope_;
    /**
     *
     *
     * <pre>
     * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
     * </pre>
     *
     * <code>optional string scope = 4;</code>
     */
    public boolean hasScope() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
     * </pre>
     *
     * <code>optional string scope = 4;</code>
     */
    public java.lang.String getScope() {
      java.lang.Object ref = scope_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          scope_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
     * </pre>
     *
     * <code>optional string scope = 4;</code>
     */
    public com.google.protobuf.ByteString getScopeBytes() {
      java.lang.Object ref = scope_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        scope_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALIDATION_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation validation_;
    /**
     *
     *
     * <pre>
     * Validation describes the validation methods for CustomResources
     * Optional, the global validation schema for all versions.
     * Top-level and per-version schemas are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
     * </code>
     */
    public boolean hasValidation() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Validation describes the validation methods for CustomResources
     * Optional, the global validation schema for all versions.
     * Top-level and per-version schemas are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
        getValidation() {
      return validation_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
              .getDefaultInstance()
          : validation_;
    }
    /**
     *
     *
     * <pre>
     * Validation describes the validation methods for CustomResources
     * Optional, the global validation schema for all versions.
     * Top-level and per-version schemas are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder
        getValidationOrBuilder() {
      return validation_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
              .getDefaultInstance()
          : validation_;
    }

    public static final int SUBRESOURCES_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
        subresources_;
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Optional, the global subresources for all versions.
     * Top-level and per-version subresources are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
     * </code>
     */
    public boolean hasSubresources() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Optional, the global subresources for all versions.
     * Top-level and per-version subresources are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
        getSubresources() {
      return subresources_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
              .getDefaultInstance()
          : subresources_;
    }
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Optional, the global subresources for all versions.
     * Top-level and per-version subresources are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder
        getSubresourcesOrBuilder() {
      return subresources_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
              .getDefaultInstance()
          : subresources_;
    }

    public static final int VERSIONS_FIELD_NUMBER = 7;
    private java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion>
        versions_;
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    public java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion>
        getVersionsList() {
      return versions_;
    }
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    public java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceDefinitionVersionOrBuilder>
        getVersionsOrBuilderList() {
      return versions_;
    }
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    public int getVersionsCount() {
      return versions_.size();
    }
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
        getVersions(int index) {
      return versions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Versions is the list of all supported versions for this resource.
     * If Version field is provided, this field is optional.
     * Validation: All versions must use the same validation schema for now. i.e., top
     * level Validation field is applied to all of these versions.
     * Order: The version name will be used to compute the order.
     * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
     * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
     * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
     * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
     * major version, then minor version. An example sorted list of versions:
     * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersionOrBuilder
        getVersionsOrBuilder(int index) {
      return versions_.get(index);
    }

    public static final int ADDITIONALPRINTERCOLUMNS_FIELD_NUMBER = 8;
    private java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
        additionalPrinterColumns_;
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    public java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
        getAdditionalPrinterColumnsList() {
      return additionalPrinterColumns_;
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    public java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceColumnDefinitionOrBuilder>
        getAdditionalPrinterColumnsOrBuilderList() {
      return additionalPrinterColumns_;
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    public int getAdditionalPrinterColumnsCount() {
      return additionalPrinterColumns_.size();
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
        getAdditionalPrinterColumns(int index) {
      return additionalPrinterColumns_.get(index);
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Optional, the global columns for all versions.
     * Top-level and per-version columns are mutually exclusive.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder
        getAdditionalPrinterColumnsOrBuilder(int index) {
      return additionalPrinterColumns_.get(index);
    }

    public static final int CONVERSION_FIELD_NUMBER = 9;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion conversion_;
    /**
     *
     *
     * <pre>
     * `conversion` defines conversion settings for the CRD.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
     * </code>
     */
    public boolean hasConversion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * `conversion` defines conversion settings for the CRD.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
        getConversion() {
      return conversion_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
              .getDefaultInstance()
          : conversion_;
    }
    /**
     *
     *
     * <pre>
     * `conversion` defines conversion settings for the CRD.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversionOrBuilder
        getConversionOrBuilder() {
      return conversion_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
              .getDefaultInstance()
          : conversion_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getNames());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, scope_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getValidation());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, getSubresources());
      }
      for (int i = 0; i < versions_.size(); i++) {
        output.writeMessage(7, versions_.get(i));
      }
      for (int i = 0; i < additionalPrinterColumns_.size(); i++) {
        output.writeMessage(8, additionalPrinterColumns_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(9, getConversion());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, group_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getNames());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, scope_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getValidation());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getSubresources());
      }
      for (int i = 0; i < versions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, versions_.get(i));
      }
      for (int i = 0; i < additionalPrinterColumns_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                8, additionalPrinterColumns_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getConversion());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj
          instanceof
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec) 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 && (hasNames() == other.hasNames());
      if (hasNames()) {
        result = result && getNames().equals(other.getNames());
      }
      result = result && (hasScope() == other.hasScope());
      if (hasScope()) {
        result = result && getScope().equals(other.getScope());
      }
      result = result && (hasValidation() == other.hasValidation());
      if (hasValidation()) {
        result = result && getValidation().equals(other.getValidation());
      }
      result = result && (hasSubresources() == other.hasSubresources());
      if (hasSubresources()) {
        result = result && getSubresources().equals(other.getSubresources());
      }
      result = result && getVersionsList().equals(other.getVersionsList());
      result =
          result
              && getAdditionalPrinterColumnsList().equals(other.getAdditionalPrinterColumnsList());
      result = result && (hasConversion() == other.hasConversion());
      if (hasConversion()) {
        result = result && getConversion().equals(other.getConversion());
      }
      result = result && unknownFields.equals(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 (hasNames()) {
        hash = (37 * hash) + NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getNames().hashCode();
      }
      if (hasScope()) {
        hash = (37 * hash) + SCOPE_FIELD_NUMBER;
        hash = (53 * hash) + getScope().hashCode();
      }
      if (hasValidation()) {
        hash = (37 * hash) + VALIDATION_FIELD_NUMBER;
        hash = (53 * hash) + getValidation().hashCode();
      }
      if (hasSubresources()) {
        hash = (37 * hash) + SUBRESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSubresources().hashCode();
      }
      if (getVersionsCount() > 0) {
        hash = (37 * hash) + VERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getVersionsList().hashCode();
      }
      if (getAdditionalPrinterColumnsCount() > 0) {
        hash = (37 * hash) + ADDITIONALPRINTERCOLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getAdditionalPrinterColumnsList().hashCode();
      }
      if (hasConversion()) {
        hash = (37 * hash) + CONVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getConversion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinitionSpec describes how a user wants their resource to appear
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec_descriptor;
      }

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

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

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

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getNamesFieldBuilder();
          getValidationFieldBuilder();
          getSubresourcesFieldBuilder();
          getVersionsFieldBuilder();
          getAdditionalPrinterColumnsFieldBuilder();
          getConversionFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (namesBuilder_ == null) {
          names_ = null;
        } else {
          namesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        scope_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (validationBuilder_ == null) {
          validation_ = null;
        } else {
          validationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (subresourcesBuilder_ == null) {
          subresources_ = null;
        } else {
          subresourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (versionsBuilder_ == null) {
          versions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          versionsBuilder_.clear();
        }
        if (additionalPrinterColumnsBuilder_ == null) {
          additionalPrinterColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          additionalPrinterColumnsBuilder_.clear();
        }
        if (conversionBuilder_ == null) {
          conversion_ = null;
        } else {
          conversionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec(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;
        }
        if (namesBuilder_ == null) {
          result.names_ = names_;
        } else {
          result.names_ = namesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.scope_ = scope_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (validationBuilder_ == null) {
          result.validation_ = validation_;
        } else {
          result.validation_ = validationBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (subresourcesBuilder_ == null) {
          result.subresources_ = subresources_;
        } else {
          result.subresources_ = subresourcesBuilder_.build();
        }
        if (versionsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            versions_ = java.util.Collections.unmodifiableList(versions_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.versions_ = versions_;
        } else {
          result.versions_ = versionsBuilder_.build();
        }
        if (additionalPrinterColumnsBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            additionalPrinterColumns_ =
                java.util.Collections.unmodifiableList(additionalPrinterColumns_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.additionalPrinterColumns_ = additionalPrinterColumns_;
        } else {
          result.additionalPrinterColumns_ = additionalPrinterColumnsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000040;
        }
        if (conversionBuilder_ == null) {
          result.conversion_ = conversion_;
        } else {
          result.conversion_ = conversionBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
                .getDefaultInstance()) return this;
        if (other.hasGroup()) {
          bitField0_ |= 0x00000001;
          group_ = other.group_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000002;
          version_ = other.version_;
          onChanged();
        }
        if (other.hasNames()) {
          mergeNames(other.getNames());
        }
        if (other.hasScope()) {
          bitField0_ |= 0x00000008;
          scope_ = other.scope_;
          onChanged();
        }
        if (other.hasValidation()) {
          mergeValidation(other.getValidation());
        }
        if (other.hasSubresources()) {
          mergeSubresources(other.getSubresources());
        }
        if (versionsBuilder_ == null) {
          if (!other.versions_.isEmpty()) {
            if (versions_.isEmpty()) {
              versions_ = other.versions_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureVersionsIsMutable();
              versions_.addAll(other.versions_);
            }
            onChanged();
          }
        } else {
          if (!other.versions_.isEmpty()) {
            if (versionsBuilder_.isEmpty()) {
              versionsBuilder_.dispose();
              versionsBuilder_ = null;
              versions_ = other.versions_;
              bitField0_ = (bitField0_ & ~0x00000040);
              versionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getVersionsFieldBuilder()
                      : null;
            } else {
              versionsBuilder_.addAllMessages(other.versions_);
            }
          }
        }
        if (additionalPrinterColumnsBuilder_ == null) {
          if (!other.additionalPrinterColumns_.isEmpty()) {
            if (additionalPrinterColumns_.isEmpty()) {
              additionalPrinterColumns_ = other.additionalPrinterColumns_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureAdditionalPrinterColumnsIsMutable();
              additionalPrinterColumns_.addAll(other.additionalPrinterColumns_);
            }
            onChanged();
          }
        } else {
          if (!other.additionalPrinterColumns_.isEmpty()) {
            if (additionalPrinterColumnsBuilder_.isEmpty()) {
              additionalPrinterColumnsBuilder_.dispose();
              additionalPrinterColumnsBuilder_ = null;
              additionalPrinterColumns_ = other.additionalPrinterColumns_;
              bitField0_ = (bitField0_ & ~0x00000080);
              additionalPrinterColumnsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getAdditionalPrinterColumnsFieldBuilder()
                      : null;
            } else {
              additionalPrinterColumnsBuilder_.addAllMessages(other.additionalPrinterColumns_);
            }
          }
        }
        if (other.hasConversion()) {
          mergeConversion(other.getConversion());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object group_ = "";
      /**
       *
       *
       * <pre>
       * Group is the group this resource belongs in
       * </pre>
       *
       * <code>optional string group = 1;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Group is the group this resource belongs in
       * </pre>
       *
       * <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;
        }
      }
      /**
       *
       *
       * <pre>
       * Group is the group this resource belongs in
       * </pre>
       *
       * <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;
        }
      }
      /**
       *
       *
       * <pre>
       * Group is the group this resource belongs in
       * </pre>
       *
       * <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;
      }
      /**
       *
       *
       * <pre>
       * Group is the group this resource belongs in
       * </pre>
       *
       * <code>optional string group = 1;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Group is the group this resource belongs in
       * </pre>
       *
       * <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_ = "";
      /**
       *
       *
       * <pre>
       * Version is the version this resource belongs in
       * Should be always first item in Versions field if provided.
       * Optional, but at least one of Version or Versions must be set.
       * Deprecated: Please use `Versions`.
       * +optional
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Version is the version this resource belongs in
       * Should be always first item in Versions field if provided.
       * Optional, but at least one of Version or Versions must be set.
       * Deprecated: Please use `Versions`.
       * +optional
       * </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 is the version this resource belongs in
       * Should be always first item in Versions field if provided.
       * Optional, but at least one of Version or Versions must be set.
       * Deprecated: Please use `Versions`.
       * +optional
       * </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 is the version this resource belongs in
       * Should be always first item in Versions field if provided.
       * Optional, but at least one of Version or Versions must be set.
       * Deprecated: Please use `Versions`.
       * +optional
       * </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 is the version this resource belongs in
       * Should be always first item in Versions field if provided.
       * Optional, but at least one of Version or Versions must be set.
       * Deprecated: Please use `Versions`.
       * +optional
       * </pre>
       *
       * <code>optional string version = 2;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Version is the version this resource belongs in
       * Should be always first item in Versions field if provided.
       * Optional, but at least one of Version or Versions must be set.
       * Deprecated: Please use `Versions`.
       * +optional
       * </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;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames names_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionNamesOrBuilder>
          namesBuilder_;
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public boolean hasNames() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
          getNames() {
        if (namesBuilder_ == null) {
          return names_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                  .getDefaultInstance()
              : names_;
        } else {
          return namesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public Builder setNames(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames value) {
        if (namesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          names_ = value;
          onChanged();
        } else {
          namesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public Builder setNames(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder
              builderForValue) {
        if (namesBuilder_ == null) {
          names_ = builderForValue.build();
          onChanged();
        } else {
          namesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public Builder mergeNames(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames value) {
        if (namesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && names_ != null
              && names_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                      .getDefaultInstance()) {
            names_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                    .newBuilder(names_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            names_ = value;
          }
          onChanged();
        } else {
          namesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public Builder clearNames() {
        if (namesBuilder_ == null) {
          names_ = null;
          onChanged();
        } else {
          namesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder
          getNamesBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getNamesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder
          getNamesOrBuilder() {
        if (namesBuilder_ != null) {
          return namesBuilder_.getMessageOrBuilder();
        } else {
          return names_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                  .getDefaultInstance()
              : names_;
        }
      }
      /**
       *
       *
       * <pre>
       * Names are the names used to describe this custom resource
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames names = 3;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionNamesOrBuilder>
          getNamesFieldBuilder() {
        if (namesBuilder_ == null) {
          namesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionNamesOrBuilder>(
                  getNames(), getParentForChildren(), isClean());
          names_ = null;
        }
        return namesBuilder_;
      }

      private java.lang.Object scope_ = "";
      /**
       *
       *
       * <pre>
       * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
       * </pre>
       *
       * <code>optional string scope = 4;</code>
       */
      public boolean hasScope() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
       * </pre>
       *
       * <code>optional string scope = 4;</code>
       */
      public java.lang.String getScope() {
        java.lang.Object ref = scope_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            scope_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
       * </pre>
       *
       * <code>optional string scope = 4;</code>
       */
      public com.google.protobuf.ByteString getScopeBytes() {
        java.lang.Object ref = scope_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          scope_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
       * </pre>
       *
       * <code>optional string scope = 4;</code>
       */
      public Builder setScope(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        scope_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
       * </pre>
       *
       * <code>optional string scope = 4;</code>
       */
      public Builder clearScope() {
        bitField0_ = (bitField0_ & ~0x00000008);
        scope_ = getDefaultInstance().getScope();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced
       * </pre>
       *
       * <code>optional string scope = 4;</code>
       */
      public Builder setScopeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        scope_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation validation_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder>
          validationBuilder_;
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public boolean hasValidation() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
          getValidation() {
        if (validationBuilder_ == null) {
          return validation_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                  .getDefaultInstance()
              : validation_;
        } else {
          return validationBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public Builder setValidation(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation value) {
        if (validationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          validation_ = value;
          onChanged();
        } else {
          validationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public Builder setValidation(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder
              builderForValue) {
        if (validationBuilder_ == null) {
          validation_ = builderForValue.build();
          onChanged();
        } else {
          validationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public Builder mergeValidation(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation value) {
        if (validationBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && validation_ != null
              && validation_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                      .getDefaultInstance()) {
            validation_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.newBuilder(
                        validation_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            validation_ = value;
          }
          onChanged();
        } else {
          validationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public Builder clearValidation() {
        if (validationBuilder_ == null) {
          validation_ = null;
          onChanged();
        } else {
          validationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder
          getValidationBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getValidationFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder
          getValidationOrBuilder() {
        if (validationBuilder_ != null) {
          return validationBuilder_.getMessageOrBuilder();
        } else {
          return validation_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                  .getDefaultInstance()
              : validation_;
        }
      }
      /**
       *
       *
       * <pre>
       * Validation describes the validation methods for CustomResources
       * Optional, the global validation schema for all versions.
       * Top-level and per-version schemas are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation validation = 5;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder>
          getValidationFieldBuilder() {
        if (validationBuilder_ == null) {
          validationBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceValidationOrBuilder>(
                  getValidation(), getParentForChildren(), isClean());
          validation_ = null;
        }
        return validationBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
          subresources_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder>
          subresourcesBuilder_;
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public boolean hasSubresources() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
          getSubresources() {
        if (subresourcesBuilder_ == null) {
          return subresources_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                  .getDefaultInstance()
              : subresources_;
        } else {
          return subresourcesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public Builder setSubresources(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources value) {
        if (subresourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          subresources_ = value;
          onChanged();
        } else {
          subresourcesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public Builder setSubresources(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder
              builderForValue) {
        if (subresourcesBuilder_ == null) {
          subresources_ = builderForValue.build();
          onChanged();
        } else {
          subresourcesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public Builder mergeSubresources(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources value) {
        if (subresourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && subresources_ != null
              && subresources_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                      .getDefaultInstance()) {
            subresources_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                    .newBuilder(subresources_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            subresources_ = value;
          }
          onChanged();
        } else {
          subresourcesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public Builder clearSubresources() {
        if (subresourcesBuilder_ == null) {
          subresources_ = null;
          onChanged();
        } else {
          subresourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder
          getSubresourcesBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getSubresourcesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder
          getSubresourcesOrBuilder() {
        if (subresourcesBuilder_ != null) {
          return subresourcesBuilder_.getMessageOrBuilder();
        } else {
          return subresources_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                  .getDefaultInstance()
              : subresources_;
        }
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Optional, the global subresources for all versions.
       * Top-level and per-version subresources are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 6;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder>
          getSubresourcesFieldBuilder() {
        if (subresourcesBuilder_ == null) {
          subresourcesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceSubresourcesOrBuilder>(
                  getSubresources(), getParentForChildren(), isClean());
          subresources_ = null;
        }
        return subresourcesBuilder_;
      }

      private java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion>
          versions_ = java.util.Collections.emptyList();

      private void ensureVersionsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          versions_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion>(
                  versions_);
          bitField0_ |= 0x00000040;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionVersionOrBuilder>
          versionsBuilder_;

      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion>
          getVersionsList() {
        if (versionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(versions_);
        } else {
          return versionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public int getVersionsCount() {
        if (versionsBuilder_ == null) {
          return versions_.size();
        } else {
          return versionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
          getVersions(int index) {
        if (versionsBuilder_ == null) {
          return versions_.get(index);
        } else {
          return versionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder setVersions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion 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 is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder setVersions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion.Builder
              builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.set(index, builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder addVersions(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.add(value);
          onChanged();
        } else {
          versionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder addVersions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion 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 is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder addVersions(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion.Builder
              builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.add(builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder addVersions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion.Builder
              builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.add(index, builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder addAllVersions(
          java.lang.Iterable<
                  ? extends
                      io.kubernetes.client.proto.V1beta1Apiextensions
                          .CustomResourceDefinitionVersion>
              values) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, versions_);
          onChanged();
        } else {
          versionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder clearVersions() {
        if (versionsBuilder_ == null) {
          versions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          versionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public Builder removeVersions(int index) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.remove(index);
          onChanged();
        } else {
          versionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion.Builder
          getVersionsBuilder(int index) {
        return getVersionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions
              .CustomResourceDefinitionVersionOrBuilder
          getVersionsOrBuilder(int index) {
        if (versionsBuilder_ == null) {
          return versions_.get(index);
        } else {
          return versionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public java.util.List<
              ? extends
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionVersionOrBuilder>
          getVersionsOrBuilderList() {
        if (versionsBuilder_ != null) {
          return versionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(versions_);
        }
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion.Builder
          addVersionsBuilder() {
        return getVersionsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion.Builder
          addVersionsBuilder(int index) {
        return getVersionsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Versions is the list of all supported versions for this resource.
       * If Version field is provided, this field is optional.
       * Validation: All versions must use the same validation schema for now. i.e., top
       * level Validation field is applied to all of these versions.
       * Order: The version name will be used to compute the order.
       * If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered
       * lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version),
       * then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first
       * by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing
       * major version, then minor version. An example sorted list of versions:
       * v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion versions = 7;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                  .Builder>
          getVersionsBuilderList() {
        return getVersionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionVersionOrBuilder>
          getVersionsFieldBuilder() {
        if (versionsBuilder_ == null) {
          versionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionVersionOrBuilder>(
                  versions_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          versions_ = null;
        }
        return versionsBuilder_;
      }

      private java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
          additionalPrinterColumns_ = java.util.Collections.emptyList();

      private void ensureAdditionalPrinterColumnsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          additionalPrinterColumns_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>(
                  additionalPrinterColumns_);
          bitField0_ |= 0x00000080;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceColumnDefinitionOrBuilder>
          additionalPrinterColumnsBuilder_;

      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
          getAdditionalPrinterColumnsList() {
        if (additionalPrinterColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(additionalPrinterColumns_);
        } else {
          return additionalPrinterColumnsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public int getAdditionalPrinterColumnsCount() {
        if (additionalPrinterColumnsBuilder_ == null) {
          return additionalPrinterColumns_.size();
        } else {
          return additionalPrinterColumnsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
          getAdditionalPrinterColumns(int index) {
        if (additionalPrinterColumnsBuilder_ == null) {
          return additionalPrinterColumns_.get(index);
        } else {
          return additionalPrinterColumnsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder setAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition value) {
        if (additionalPrinterColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.set(index, value);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder setAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
              builderForValue) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition value) {
        if (additionalPrinterColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(value);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition value) {
        if (additionalPrinterColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(index, value);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
              builderForValue) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(builderForValue.build());
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
              builderForValue) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder addAllAdditionalPrinterColumns(
          java.lang.Iterable<
                  ? extends
                      io.kubernetes.client.proto.V1beta1Apiextensions
                          .CustomResourceColumnDefinition>
              values) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, additionalPrinterColumns_);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder clearAdditionalPrinterColumns() {
        if (additionalPrinterColumnsBuilder_ == null) {
          additionalPrinterColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public Builder removeAdditionalPrinterColumns(int index) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.remove(index);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
          getAdditionalPrinterColumnsBuilder(int index) {
        return getAdditionalPrinterColumnsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder
          getAdditionalPrinterColumnsOrBuilder(int index) {
        if (additionalPrinterColumnsBuilder_ == null) {
          return additionalPrinterColumns_.get(index);
        } else {
          return additionalPrinterColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public java.util.List<
              ? extends
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceColumnDefinitionOrBuilder>
          getAdditionalPrinterColumnsOrBuilderList() {
        if (additionalPrinterColumnsBuilder_ != null) {
          return additionalPrinterColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(additionalPrinterColumns_);
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
          addAdditionalPrinterColumnsBuilder() {
        return getAdditionalPrinterColumnsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
          addAdditionalPrinterColumnsBuilder(int index) {
        return getAdditionalPrinterColumnsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Optional, the global columns for all versions.
       * Top-level and per-version columns are mutually exclusive.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 8;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                  .Builder>
          getAdditionalPrinterColumnsBuilderList() {
        return getAdditionalPrinterColumnsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceColumnDefinitionOrBuilder>
          getAdditionalPrinterColumnsFieldBuilder() {
        if (additionalPrinterColumnsBuilder_ == null) {
          additionalPrinterColumnsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceColumnDefinitionOrBuilder>(
                  additionalPrinterColumns_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          additionalPrinterColumns_ = null;
        }
        return additionalPrinterColumnsBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion conversion_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversionOrBuilder>
          conversionBuilder_;
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public boolean hasConversion() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
          getConversion() {
        if (conversionBuilder_ == null) {
          return conversion_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
                  .getDefaultInstance()
              : conversion_;
        } else {
          return conversionBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public Builder setConversion(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion value) {
        if (conversionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          conversion_ = value;
          onChanged();
        } else {
          conversionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public Builder setConversion(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.Builder
              builderForValue) {
        if (conversionBuilder_ == null) {
          conversion_ = builderForValue.build();
          onChanged();
        } else {
          conversionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public Builder mergeConversion(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion value) {
        if (conversionBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)
              && conversion_ != null
              && conversion_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
                      .getDefaultInstance()) {
            conversion_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.newBuilder(
                        conversion_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            conversion_ = value;
          }
          onChanged();
        } else {
          conversionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public Builder clearConversion() {
        if (conversionBuilder_ == null) {
          conversion_ = null;
          onChanged();
        } else {
          conversionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.Builder
          getConversionBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getConversionFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversionOrBuilder
          getConversionOrBuilder() {
        if (conversionBuilder_ != null) {
          return conversionBuilder_.getMessageOrBuilder();
        } else {
          return conversion_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion
                  .getDefaultInstance()
              : conversion_;
        }
      }
      /**
       *
       *
       * <pre>
       * `conversion` defines conversion settings for the CRD.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion conversion = 9;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversionOrBuilder>
          getConversionFieldBuilder() {
        if (conversionBuilder_ == null) {
          conversionBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceConversion.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceConversionOrBuilder>(
                  getConversion(), getParentForChildren(), isClean());
          conversion_ = null;
        }
        return conversionBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionSpec
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionSpec
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition>
        getConditionsList();
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition getConditions(
        int index);
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    int getConditionsCount();
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceDefinitionConditionOrBuilder>
        getConditionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionConditionOrBuilder
        getConditionsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * AcceptedNames are the names that are actually being used to serve discovery
     * They may be different than the names in spec.
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
     * </code>
     */
    boolean hasAcceptedNames();
    /**
     *
     *
     * <pre>
     * AcceptedNames are the names that are actually being used to serve discovery
     * They may be different than the names in spec.
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
        getAcceptedNames();
    /**
     *
     *
     * <pre>
     * AcceptedNames are the names that are actually being used to serve discovery
     * They may be different than the names in spec.
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder
        getAcceptedNamesOrBuilder();

    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    java.util.List<java.lang.String> getStoredVersionsList();
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    int getStoredVersionsCount();
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    java.lang.String getStoredVersions(int index);
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    com.google.protobuf.ByteString getStoredVersionsBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus}
   */
  public static final class CustomResourceDefinitionStatus
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus)
      CustomResourceDefinitionStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinitionStatus.newBuilder() to construct.
    private CustomResourceDefinitionStatus(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinitionStatus() {
      conditions_ = java.util.Collections.emptyList();
      storedVersions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

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

    private CustomResourceDefinitionStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  conditions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .CustomResourceDefinitionCondition>();
                  mutable_bitField0_ |= 0x00000001;
                }
                conditions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .CustomResourceDefinitionCondition.PARSER,
                        extensionRegistry));
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                        .Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = acceptedNames_.toBuilder();
                }
                acceptedNames_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .CustomResourceDefinitionNames.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(acceptedNames_);
                  acceptedNames_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  storedVersions_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                storedVersions_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          storedVersions_ = storedVersions_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private int bitField0_;
    public static final int CONDITIONS_FIELD_NUMBER = 1;
    private java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition>
        conditions_;
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    public java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition>
        getConditionsList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    public java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceDefinitionConditionOrBuilder>
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
        getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Conditions indicate state for particular aspects of a CustomResourceDefinition
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionConditionOrBuilder
        getConditionsOrBuilder(int index) {
      return conditions_.get(index);
    }

    public static final int ACCEPTEDNAMES_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
        acceptedNames_;
    /**
     *
     *
     * <pre>
     * AcceptedNames are the names that are actually being used to serve discovery
     * They may be different than the names in spec.
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
     * </code>
     */
    public boolean hasAcceptedNames() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * AcceptedNames are the names that are actually being used to serve discovery
     * They may be different than the names in spec.
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
        getAcceptedNames() {
      return acceptedNames_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
              .getDefaultInstance()
          : acceptedNames_;
    }
    /**
     *
     *
     * <pre>
     * AcceptedNames are the names that are actually being used to serve discovery
     * They may be different than the names in spec.
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder
        getAcceptedNamesOrBuilder() {
      return acceptedNames_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
              .getDefaultInstance()
          : acceptedNames_;
    }

    public static final int STOREDVERSIONS_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList storedVersions_;
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList getStoredVersionsList() {
      return storedVersions_;
    }
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    public int getStoredVersionsCount() {
      return storedVersions_.size();
    }
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    public java.lang.String getStoredVersions(int index) {
      return storedVersions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
     * versions allows a migration path for stored versions in etcd. The field is mutable
     * so the migration controller can first finish a migration to another version (i.e.
     * that no old objects are left in the storage), and then remove the rest of the
     * versions from this list.
     * None of the versions in this list can be removed from the spec.Versions field.
     * </pre>
     *
     * <code>repeated string storedVersions = 3;</code>
     */
    public com.google.protobuf.ByteString getStoredVersionsBytes(int index) {
      return storedVersions_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(1, conditions_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(2, getAcceptedNames());
      }
      for (int i = 0; i < storedVersions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, storedVersions_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, conditions_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getAcceptedNames());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < storedVersions_.size(); i++) {
          dataSize += computeStringSizeNoTag(storedVersions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getStoredVersionsList().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.V1beta1Apiextensions.CustomResourceDefinitionStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus) obj;

      boolean result = true;
      result = result && getConditionsList().equals(other.getConditionsList());
      result = result && (hasAcceptedNames() == other.hasAcceptedNames());
      if (hasAcceptedNames()) {
        result = result && getAcceptedNames().equals(other.getAcceptedNames());
      }
      result = result && getStoredVersionsList().equals(other.getStoredVersionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      if (hasAcceptedNames()) {
        hash = (37 * hash) + ACCEPTEDNAMES_FIELD_NUMBER;
        hash = (53 * hash) + getAcceptedNames().hashCode();
      }
      if (getStoredVersionsCount() > 0) {
        hash = (37 * hash) + STOREDVERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getStoredVersionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conditionsBuilder_.clear();
        }
        if (acceptedNamesBuilder_ == null) {
          acceptedNames_ = null;
        } else {
          acceptedNamesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        storedVersions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus(
                this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        if (acceptedNamesBuilder_ == null) {
          result.acceptedNames_ = acceptedNames_;
        } else {
          result.acceptedNames_ = acceptedNamesBuilder_.build();
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          storedVersions_ = storedVersions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.storedVersions_ = storedVersions_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
                .getDefaultInstance()) return this;
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conditionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConditionsFieldBuilder()
                      : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        if (other.hasAcceptedNames()) {
          mergeAcceptedNames(other.getAcceptedNames());
        }
        if (!other.storedVersions_.isEmpty()) {
          if (storedVersions_.isEmpty()) {
            storedVersions_ = other.storedVersions_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureStoredVersionsIsMutable();
            storedVersions_.addAll(other.storedVersions_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition>
          conditions_ = java.util.Collections.emptyList();

      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          conditions_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionCondition>(conditions_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionConditionOrBuilder>
          conditionsBuilder_;

      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition>
          getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
          getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder setConditions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder setConditions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition.Builder
              builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder addConditions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition.Builder
              builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder addConditions(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition.Builder
              builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<
                  ? extends
                      io.kubernetes.client.proto.V1beta1Apiextensions
                          .CustomResourceDefinitionCondition>
              values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
              .Builder
          getConditionsBuilder(int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions
              .CustomResourceDefinitionConditionOrBuilder
          getConditionsOrBuilder(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public java.util.List<
              ? extends
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionConditionOrBuilder>
          getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
              .Builder
          addConditionsBuilder() {
        return getConditionsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
              .Builder
          addConditionsBuilder(int index) {
        return getConditionsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Conditions indicate state for particular aspects of a CustomResourceDefinition
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition conditions = 1;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                  .Builder>
          getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionConditionOrBuilder>
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionCondition
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
          acceptedNames_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionNamesOrBuilder>
          acceptedNamesBuilder_;
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public boolean hasAcceptedNames() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
          getAcceptedNames() {
        if (acceptedNamesBuilder_ == null) {
          return acceptedNames_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                  .getDefaultInstance()
              : acceptedNames_;
        } else {
          return acceptedNamesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public Builder setAcceptedNames(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames value) {
        if (acceptedNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptedNames_ = value;
          onChanged();
        } else {
          acceptedNamesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public Builder setAcceptedNames(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder
              builderForValue) {
        if (acceptedNamesBuilder_ == null) {
          acceptedNames_ = builderForValue.build();
          onChanged();
        } else {
          acceptedNamesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public Builder mergeAcceptedNames(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames value) {
        if (acceptedNamesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && acceptedNames_ != null
              && acceptedNames_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                      .getDefaultInstance()) {
            acceptedNames_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                    .newBuilder(acceptedNames_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            acceptedNames_ = value;
          }
          onChanged();
        } else {
          acceptedNamesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public Builder clearAcceptedNames() {
        if (acceptedNamesBuilder_ == null) {
          acceptedNames_ = null;
          onChanged();
        } else {
          acceptedNamesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder
          getAcceptedNamesBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getAcceptedNamesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNamesOrBuilder
          getAcceptedNamesOrBuilder() {
        if (acceptedNamesBuilder_ != null) {
          return acceptedNamesBuilder_.getMessageOrBuilder();
        } else {
          return acceptedNames_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                  .getDefaultInstance()
              : acceptedNames_;
        }
      }
      /**
       *
       *
       * <pre>
       * AcceptedNames are the names that are actually being used to serve discovery
       * They may be different than the names in spec.
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames acceptedNames = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceDefinitionNamesOrBuilder>
          getAcceptedNamesFieldBuilder() {
        if (acceptedNamesBuilder_ == null) {
          acceptedNamesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionNames
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceDefinitionNamesOrBuilder>(
                  getAcceptedNames(), getParentForChildren(), isClean());
          acceptedNames_ = null;
        }
        return acceptedNamesBuilder_;
      }

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

      private void ensureStoredVersionsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          storedVersions_ = new com.google.protobuf.LazyStringArrayList(storedVersions_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList getStoredVersionsList() {
        return storedVersions_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public int getStoredVersionsCount() {
        return storedVersions_.size();
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public java.lang.String getStoredVersions(int index) {
        return storedVersions_.get(index);
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public com.google.protobuf.ByteString getStoredVersionsBytes(int index) {
        return storedVersions_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public Builder setStoredVersions(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStoredVersionsIsMutable();
        storedVersions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public Builder addStoredVersions(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStoredVersionsIsMutable();
        storedVersions_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public Builder addAllStoredVersions(java.lang.Iterable<java.lang.String> values) {
        ensureStoredVersionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, storedVersions_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public Builder clearStoredVersions() {
        storedVersions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * StoredVersions are all versions of CustomResources that were ever persisted. Tracking these
       * versions allows a migration path for stored versions in etcd. The field is mutable
       * so the migration controller can first finish a migration to another version (i.e.
       * that no old objects are left in the storage), and then remove the rest of the
       * versions from this list.
       * None of the versions in this list can be removed from the spec.Versions field.
       * </pre>
       *
       * <code>repeated string storedVersions = 3;</code>
       */
      public Builder addStoredVersionsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStoredVersionsIsMutable();
        storedVersions_.add(value);
        onChanged();
        return this;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionStatus
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionStatus
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceDefinitionVersionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name is the version name, e.g. “v1”, “v2beta1”, etc.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name is the version name, e.g. “v1”, “v2beta1”, etc.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name is the version name, e.g. “v1”, “v2beta1”, etc.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Served is a flag enabling/disabling this version from being served via REST APIs
     * </pre>
     *
     * <code>optional bool served = 2;</code>
     */
    boolean hasServed();
    /**
     *
     *
     * <pre>
     * Served is a flag enabling/disabling this version from being served via REST APIs
     * </pre>
     *
     * <code>optional bool served = 2;</code>
     */
    boolean getServed();

    /**
     *
     *
     * <pre>
     * Storage flags the version as storage version. There must be exactly one
     * flagged as storage version.
     * </pre>
     *
     * <code>optional bool storage = 3;</code>
     */
    boolean hasStorage();
    /**
     *
     *
     * <pre>
     * Storage flags the version as storage version. There must be exactly one
     * flagged as storage version.
     * </pre>
     *
     * <code>optional bool storage = 3;</code>
     */
    boolean getStorage();

    /**
     *
     *
     * <pre>
     * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
     * Top-level and per-version schemas are mutually exclusive.
     * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
     * </code>
     */
    boolean hasSchema();
    /**
     *
     *
     * <pre>
     * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
     * Top-level and per-version schemas are mutually exclusive.
     * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation getSchema();
    /**
     *
     *
     * <pre>
     * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
     * Top-level and per-version schemas are mutually exclusive.
     * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder
        getSchemaOrBuilder();

    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Top-level and per-version subresources are mutually exclusive.
     * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
     * </code>
     */
    boolean hasSubresources();
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Top-level and per-version subresources are mutually exclusive.
     * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources getSubresources();
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Top-level and per-version subresources are mutually exclusive.
     * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder
        getSubresourcesOrBuilder();

    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
        getAdditionalPrinterColumnsList();
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
        getAdditionalPrinterColumns(int index);
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    int getAdditionalPrinterColumnsCount();
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceColumnDefinitionOrBuilder>
        getAdditionalPrinterColumnsOrBuilderList();
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder
        getAdditionalPrinterColumnsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * CustomResourceDefinitionVersion describes a version for CRD.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion}
   */
  public static final class CustomResourceDefinitionVersion
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion)
      CustomResourceDefinitionVersionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceDefinitionVersion.newBuilder() to construct.
    private CustomResourceDefinitionVersion(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceDefinitionVersion() {
      name_ = "";
      served_ = false;
      storage_ = false;
      additionalPrinterColumns_ = java.util.Collections.emptyList();
    }

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

    private CustomResourceDefinitionVersion(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                served_ = input.readBool();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                storage_ = input.readBool();
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = schema_.toBuilder();
                }
                schema_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(schema_);
                  schema_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = subresources_.toBuilder();
                }
                subresources_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(subresources_);
                  subresources_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 50:
              {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  additionalPrinterColumns_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .CustomResourceColumnDefinition>();
                  mutable_bitField0_ |= 0x00000020;
                }
                additionalPrinterColumns_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .CustomResourceColumnDefinition.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          additionalPrinterColumns_ =
              java.util.Collections.unmodifiableList(additionalPrinterColumns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name is the version name, e.g. “v1”, “v2beta1”, etc.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name is the version name, e.g. “v1”, “v2beta1”, etc.
     * </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 version name, e.g. “v1”, “v2beta1”, etc.
     * </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 SERVED_FIELD_NUMBER = 2;
    private boolean served_;
    /**
     *
     *
     * <pre>
     * Served is a flag enabling/disabling this version from being served via REST APIs
     * </pre>
     *
     * <code>optional bool served = 2;</code>
     */
    public boolean hasServed() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Served is a flag enabling/disabling this version from being served via REST APIs
     * </pre>
     *
     * <code>optional bool served = 2;</code>
     */
    public boolean getServed() {
      return served_;
    }

    public static final int STORAGE_FIELD_NUMBER = 3;
    private boolean storage_;
    /**
     *
     *
     * <pre>
     * Storage flags the version as storage version. There must be exactly one
     * flagged as storage version.
     * </pre>
     *
     * <code>optional bool storage = 3;</code>
     */
    public boolean hasStorage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Storage flags the version as storage version. There must be exactly one
     * flagged as storage version.
     * </pre>
     *
     * <code>optional bool storage = 3;</code>
     */
    public boolean getStorage() {
      return storage_;
    }

    public static final int SCHEMA_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation schema_;
    /**
     *
     *
     * <pre>
     * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
     * Top-level and per-version schemas are mutually exclusive.
     * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
     * </code>
     */
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
     * Top-level and per-version schemas are mutually exclusive.
     * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation getSchema() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
              .getDefaultInstance()
          : schema_;
    }
    /**
     *
     *
     * <pre>
     * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
     * Top-level and per-version schemas are mutually exclusive.
     * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder
        getSchemaOrBuilder() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
              .getDefaultInstance()
          : schema_;
    }

    public static final int SUBRESOURCES_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
        subresources_;
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Top-level and per-version subresources are mutually exclusive.
     * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
     * </code>
     */
    public boolean hasSubresources() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Top-level and per-version subresources are mutually exclusive.
     * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
        getSubresources() {
      return subresources_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
              .getDefaultInstance()
          : subresources_;
    }
    /**
     *
     *
     * <pre>
     * Subresources describes the subresources for CustomResource
     * Top-level and per-version subresources are mutually exclusive.
     * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder
        getSubresourcesOrBuilder() {
      return subresources_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
              .getDefaultInstance()
          : subresources_;
    }

    public static final int ADDITIONALPRINTERCOLUMNS_FIELD_NUMBER = 6;
    private java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
        additionalPrinterColumns_;
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    public java.util.List<
            io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
        getAdditionalPrinterColumnsList() {
      return additionalPrinterColumns_;
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    public java.util.List<
            ? extends
                io.kubernetes.client.proto.V1beta1Apiextensions
                    .CustomResourceColumnDefinitionOrBuilder>
        getAdditionalPrinterColumnsOrBuilderList() {
      return additionalPrinterColumns_;
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    public int getAdditionalPrinterColumnsCount() {
      return additionalPrinterColumns_.size();
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
        getAdditionalPrinterColumns(int index) {
      return additionalPrinterColumns_.get(index);
    }
    /**
     *
     *
     * <pre>
     * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
     * Top-level and per-version columns are mutually exclusive.
     * Per-version columns must not all be set to identical values (top-level columns should be used instead)
     * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
     * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
     * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
     * be explicitly set to null
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder
        getAdditionalPrinterColumnsOrBuilder(int index) {
      return additionalPrinterColumns_.get(index);
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, served_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, storage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getSchema());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getSubresources());
      }
      for (int i = 0; i < additionalPrinterColumns_.size(); i++) {
        output.writeMessage(6, additionalPrinterColumns_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, served_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, storage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getSchema());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSubresources());
      }
      for (int i = 0; i < additionalPrinterColumns_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                6, additionalPrinterColumns_.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.V1beta1Apiextensions.CustomResourceDefinitionVersion)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasServed() == other.hasServed());
      if (hasServed()) {
        result = result && (getServed() == other.getServed());
      }
      result = result && (hasStorage() == other.hasStorage());
      if (hasStorage()) {
        result = result && (getStorage() == other.getStorage());
      }
      result = result && (hasSchema() == other.hasSchema());
      if (hasSchema()) {
        result = result && getSchema().equals(other.getSchema());
      }
      result = result && (hasSubresources() == other.hasSubresources());
      if (hasSubresources()) {
        result = result && getSubresources().equals(other.getSubresources());
      }
      result =
          result
              && getAdditionalPrinterColumnsList().equals(other.getAdditionalPrinterColumnsList());
      result = result && unknownFields.equals(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 (hasServed()) {
        hash = (37 * hash) + SERVED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getServed());
      }
      if (hasStorage()) {
        hash = (37 * hash) + STORAGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStorage());
      }
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      if (hasSubresources()) {
        hash = (37 * hash) + SUBRESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSubresources().hashCode();
      }
      if (getAdditionalPrinterColumnsCount() > 0) {
        hash = (37 * hash) + ADDITIONALPRINTERCOLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getAdditionalPrinterColumnsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceDefinitionVersion describes a version for CRD.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion_descriptor;
      }

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

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

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

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
          getSubresourcesFieldBuilder();
          getAdditionalPrinterColumnsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        served_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        storage_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (schemaBuilder_ == null) {
          schema_ = null;
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (subresourcesBuilder_ == null) {
          subresources_ = null;
        } else {
          subresourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (additionalPrinterColumnsBuilder_ == null) {
          additionalPrinterColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          additionalPrinterColumnsBuilder_.clear();
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion(
                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.served_ = served_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.storage_ = storage_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (schemaBuilder_ == null) {
          result.schema_ = schema_;
        } else {
          result.schema_ = schemaBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (subresourcesBuilder_ == null) {
          result.subresources_ = subresources_;
        } else {
          result.subresources_ = subresourcesBuilder_.build();
        }
        if (additionalPrinterColumnsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            additionalPrinterColumns_ =
                java.util.Collections.unmodifiableList(additionalPrinterColumns_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.additionalPrinterColumns_ = additionalPrinterColumns_;
        } else {
          result.additionalPrinterColumns_ = additionalPrinterColumnsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
                .getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasServed()) {
          setServed(other.getServed());
        }
        if (other.hasStorage()) {
          setStorage(other.getStorage());
        }
        if (other.hasSchema()) {
          mergeSchema(other.getSchema());
        }
        if (other.hasSubresources()) {
          mergeSubresources(other.getSubresources());
        }
        if (additionalPrinterColumnsBuilder_ == null) {
          if (!other.additionalPrinterColumns_.isEmpty()) {
            if (additionalPrinterColumns_.isEmpty()) {
              additionalPrinterColumns_ = other.additionalPrinterColumns_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureAdditionalPrinterColumnsIsMutable();
              additionalPrinterColumns_.addAll(other.additionalPrinterColumns_);
            }
            onChanged();
          }
        } else {
          if (!other.additionalPrinterColumns_.isEmpty()) {
            if (additionalPrinterColumnsBuilder_.isEmpty()) {
              additionalPrinterColumnsBuilder_.dispose();
              additionalPrinterColumnsBuilder_ = null;
              additionalPrinterColumns_ = other.additionalPrinterColumns_;
              bitField0_ = (bitField0_ & ~0x00000020);
              additionalPrinterColumnsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getAdditionalPrinterColumnsFieldBuilder()
                      : null;
            } else {
              additionalPrinterColumnsBuilder_.addAllMessages(other.additionalPrinterColumns_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
            parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion)
                  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 version name, e.g. “v1”, “v2beta1”, etc.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name is the version name, e.g. “v1”, “v2beta1”, etc.
       * </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 version name, e.g. “v1”, “v2beta1”, etc.
       * </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 version name, e.g. “v1”, “v2beta1”, etc.
       * </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 version name, e.g. “v1”, “v2beta1”, etc.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is the version name, e.g. “v1”, “v2beta1”, etc.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private boolean served_;
      /**
       *
       *
       * <pre>
       * Served is a flag enabling/disabling this version from being served via REST APIs
       * </pre>
       *
       * <code>optional bool served = 2;</code>
       */
      public boolean hasServed() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Served is a flag enabling/disabling this version from being served via REST APIs
       * </pre>
       *
       * <code>optional bool served = 2;</code>
       */
      public boolean getServed() {
        return served_;
      }
      /**
       *
       *
       * <pre>
       * Served is a flag enabling/disabling this version from being served via REST APIs
       * </pre>
       *
       * <code>optional bool served = 2;</code>
       */
      public Builder setServed(boolean value) {
        bitField0_ |= 0x00000002;
        served_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Served is a flag enabling/disabling this version from being served via REST APIs
       * </pre>
       *
       * <code>optional bool served = 2;</code>
       */
      public Builder clearServed() {
        bitField0_ = (bitField0_ & ~0x00000002);
        served_ = false;
        onChanged();
        return this;
      }

      private boolean storage_;
      /**
       *
       *
       * <pre>
       * Storage flags the version as storage version. There must be exactly one
       * flagged as storage version.
       * </pre>
       *
       * <code>optional bool storage = 3;</code>
       */
      public boolean hasStorage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Storage flags the version as storage version. There must be exactly one
       * flagged as storage version.
       * </pre>
       *
       * <code>optional bool storage = 3;</code>
       */
      public boolean getStorage() {
        return storage_;
      }
      /**
       *
       *
       * <pre>
       * Storage flags the version as storage version. There must be exactly one
       * flagged as storage version.
       * </pre>
       *
       * <code>optional bool storage = 3;</code>
       */
      public Builder setStorage(boolean value) {
        bitField0_ |= 0x00000004;
        storage_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Storage flags the version as storage version. There must be exactly one
       * flagged as storage version.
       * </pre>
       *
       * <code>optional bool storage = 3;</code>
       */
      public Builder clearStorage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        storage_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation schema_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder>
          schemaBuilder_;
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation getSchema() {
        if (schemaBuilder_ == null) {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                  .getDefaultInstance()
              : schema_;
        } else {
          return schemaBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schema_ = value;
          onChanged();
        } else {
          schemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder
              builderForValue) {
        if (schemaBuilder_ == null) {
          schema_ = builderForValue.build();
          onChanged();
        } else {
          schemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public Builder mergeSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation value) {
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && schema_ != null
              && schema_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                      .getDefaultInstance()) {
            schema_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.newBuilder(
                        schema_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            schema_ = value;
          }
          onChanged();
        } else {
          schemaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public Builder clearSchema() {
        if (schemaBuilder_ == null) {
          schema_ = null;
          onChanged();
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder
          getSchemaBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSchemaFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder
          getSchemaOrBuilder() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilder();
        } else {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                  .getDefaultInstance()
              : schema_;
        }
      }
      /**
       *
       *
       * <pre>
       * Schema describes the schema for CustomResource used in validation, pruning, and defaulting.
       * Top-level and per-version schemas are mutually exclusive.
       * Per-version schemas must not all be set to identical values (top-level validation schema should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation schema = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder>
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceValidationOrBuilder>(
                  getSchema(), getParentForChildren(), isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
          subresources_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder>
          subresourcesBuilder_;
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public boolean hasSubresources() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
          getSubresources() {
        if (subresourcesBuilder_ == null) {
          return subresources_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                  .getDefaultInstance()
              : subresources_;
        } else {
          return subresourcesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public Builder setSubresources(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources value) {
        if (subresourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          subresources_ = value;
          onChanged();
        } else {
          subresourcesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public Builder setSubresources(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder
              builderForValue) {
        if (subresourcesBuilder_ == null) {
          subresources_ = builderForValue.build();
          onChanged();
        } else {
          subresourcesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public Builder mergeSubresources(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources value) {
        if (subresourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && subresources_ != null
              && subresources_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                      .getDefaultInstance()) {
            subresources_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                    .newBuilder(subresources_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            subresources_ = value;
          }
          onChanged();
        } else {
          subresourcesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public Builder clearSubresources() {
        if (subresourcesBuilder_ == null) {
          subresources_ = null;
          onChanged();
        } else {
          subresourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder
          getSubresourcesBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSubresourcesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder
          getSubresourcesOrBuilder() {
        if (subresourcesBuilder_ != null) {
          return subresourcesBuilder_.getMessageOrBuilder();
        } else {
          return subresources_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                  .getDefaultInstance()
              : subresources_;
        }
      }
      /**
       *
       *
       * <pre>
       * Subresources describes the subresources for CustomResource
       * Top-level and per-version subresources are mutually exclusive.
       * Per-version subresources must not all be set to identical values (top-level subresources should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources subresources = 5;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder>
          getSubresourcesFieldBuilder() {
        if (subresourcesBuilder_ == null) {
          subresourcesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceSubresourcesOrBuilder>(
                  getSubresources(), getParentForChildren(), isClean());
          subresources_ = null;
        }
        return subresourcesBuilder_;
      }

      private java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
          additionalPrinterColumns_ = java.util.Collections.emptyList();

      private void ensureAdditionalPrinterColumnsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          additionalPrinterColumns_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>(
                  additionalPrinterColumns_);
          bitField0_ |= 0x00000020;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceColumnDefinitionOrBuilder>
          additionalPrinterColumnsBuilder_;

      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition>
          getAdditionalPrinterColumnsList() {
        if (additionalPrinterColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(additionalPrinterColumns_);
        } else {
          return additionalPrinterColumnsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public int getAdditionalPrinterColumnsCount() {
        if (additionalPrinterColumnsBuilder_ == null) {
          return additionalPrinterColumns_.size();
        } else {
          return additionalPrinterColumnsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
          getAdditionalPrinterColumns(int index) {
        if (additionalPrinterColumnsBuilder_ == null) {
          return additionalPrinterColumns_.get(index);
        } else {
          return additionalPrinterColumnsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder setAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition value) {
        if (additionalPrinterColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.set(index, value);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder setAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
              builderForValue) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition value) {
        if (additionalPrinterColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(value);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition value) {
        if (additionalPrinterColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(index, value);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
              builderForValue) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(builderForValue.build());
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder addAdditionalPrinterColumns(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
              builderForValue) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder addAllAdditionalPrinterColumns(
          java.lang.Iterable<
                  ? extends
                      io.kubernetes.client.proto.V1beta1Apiextensions
                          .CustomResourceColumnDefinition>
              values) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, additionalPrinterColumns_);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder clearAdditionalPrinterColumns() {
        if (additionalPrinterColumnsBuilder_ == null) {
          additionalPrinterColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public Builder removeAdditionalPrinterColumns(int index) {
        if (additionalPrinterColumnsBuilder_ == null) {
          ensureAdditionalPrinterColumnsIsMutable();
          additionalPrinterColumns_.remove(index);
          onChanged();
        } else {
          additionalPrinterColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
          getAdditionalPrinterColumnsBuilder(int index) {
        return getAdditionalPrinterColumnsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinitionOrBuilder
          getAdditionalPrinterColumnsOrBuilder(int index) {
        if (additionalPrinterColumnsBuilder_ == null) {
          return additionalPrinterColumns_.get(index);
        } else {
          return additionalPrinterColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public java.util.List<
              ? extends
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceColumnDefinitionOrBuilder>
          getAdditionalPrinterColumnsOrBuilderList() {
        if (additionalPrinterColumnsBuilder_ != null) {
          return additionalPrinterColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(additionalPrinterColumns_);
        }
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
          addAdditionalPrinterColumnsBuilder() {
        return getAdditionalPrinterColumnsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition.Builder
          addAdditionalPrinterColumnsBuilder(int index) {
        return getAdditionalPrinterColumnsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column.
       * Top-level and per-version columns are mutually exclusive.
       * Per-version columns must not all be set to identical values (top-level columns should be used instead)
       * This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
       * NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an
       * update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must
       * be explicitly set to null
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition additionalPrinterColumns = 6;
       * </code>
       */
      public java.util.List<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                  .Builder>
          getAdditionalPrinterColumnsBuilderList() {
        return getAdditionalPrinterColumnsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceColumnDefinitionOrBuilder>
          getAdditionalPrinterColumnsFieldBuilder() {
        if (additionalPrinterColumnsBuilder_ == null) {
          additionalPrinterColumnsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceColumnDefinition
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceColumnDefinitionOrBuilder>(
                  additionalPrinterColumns_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          additionalPrinterColumns_ = null;
        }
        return additionalPrinterColumnsBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceDefinitionVersion
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceDefinitionVersion
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceSubresourceScaleOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .spec.
     * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
     * </pre>
     *
     * <code>optional string specReplicasPath = 1;</code>
     */
    boolean hasSpecReplicasPath();
    /**
     *
     *
     * <pre>
     * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .spec.
     * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
     * </pre>
     *
     * <code>optional string specReplicasPath = 1;</code>
     */
    java.lang.String getSpecReplicasPath();
    /**
     *
     *
     * <pre>
     * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .spec.
     * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
     * </pre>
     *
     * <code>optional string specReplicasPath = 1;</code>
     */
    com.google.protobuf.ByteString getSpecReplicasPathBytes();

    /**
     *
     *
     * <pre>
     * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
     * will default to 0.
     * </pre>
     *
     * <code>optional string statusReplicasPath = 2;</code>
     */
    boolean hasStatusReplicasPath();
    /**
     *
     *
     * <pre>
     * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
     * will default to 0.
     * </pre>
     *
     * <code>optional string statusReplicasPath = 2;</code>
     */
    java.lang.String getStatusReplicasPath();
    /**
     *
     *
     * <pre>
     * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
     * will default to 0.
     * </pre>
     *
     * <code>optional string statusReplicasPath = 2;</code>
     */
    com.google.protobuf.ByteString getStatusReplicasPathBytes();

    /**
     *
     *
     * <pre>
     * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * Must be set to work with HPA.
     * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
     * subresource will default to the empty string.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelectorPath = 3;</code>
     */
    boolean hasLabelSelectorPath();
    /**
     *
     *
     * <pre>
     * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * Must be set to work with HPA.
     * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
     * subresource will default to the empty string.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelectorPath = 3;</code>
     */
    java.lang.String getLabelSelectorPath();
    /**
     *
     *
     * <pre>
     * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * Must be set to work with HPA.
     * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
     * subresource will default to the empty string.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelectorPath = 3;</code>
     */
    com.google.protobuf.ByteString getLabelSelectorPathBytes();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale}
   */
  public static final class CustomResourceSubresourceScale
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale)
      CustomResourceSubresourceScaleOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceSubresourceScale.newBuilder() to construct.
    private CustomResourceSubresourceScale(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceSubresourceScale() {
      specReplicasPath_ = "";
      statusReplicasPath_ = "";
      labelSelectorPath_ = "";
    }

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

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

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

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

    private int bitField0_;
    public static final int SPECREPLICASPATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object specReplicasPath_;
    /**
     *
     *
     * <pre>
     * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .spec.
     * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
     * </pre>
     *
     * <code>optional string specReplicasPath = 1;</code>
     */
    public boolean hasSpecReplicasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .spec.
     * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
     * </pre>
     *
     * <code>optional string specReplicasPath = 1;</code>
     */
    public java.lang.String getSpecReplicasPath() {
      java.lang.Object ref = specReplicasPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          specReplicasPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .spec.
     * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
     * </pre>
     *
     * <code>optional string specReplicasPath = 1;</code>
     */
    public com.google.protobuf.ByteString getSpecReplicasPathBytes() {
      java.lang.Object ref = specReplicasPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        specReplicasPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUSREPLICASPATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object statusReplicasPath_;
    /**
     *
     *
     * <pre>
     * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
     * will default to 0.
     * </pre>
     *
     * <code>optional string statusReplicasPath = 2;</code>
     */
    public boolean hasStatusReplicasPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
     * will default to 0.
     * </pre>
     *
     * <code>optional string statusReplicasPath = 2;</code>
     */
    public java.lang.String getStatusReplicasPath() {
      java.lang.Object ref = statusReplicasPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          statusReplicasPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
     * will default to 0.
     * </pre>
     *
     * <code>optional string statusReplicasPath = 2;</code>
     */
    public com.google.protobuf.ByteString getStatusReplicasPathBytes() {
      java.lang.Object ref = statusReplicasPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        statusReplicasPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LABELSELECTORPATH_FIELD_NUMBER = 3;
    private volatile java.lang.Object labelSelectorPath_;
    /**
     *
     *
     * <pre>
     * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * Must be set to work with HPA.
     * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
     * subresource will default to the empty string.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelectorPath = 3;</code>
     */
    public boolean hasLabelSelectorPath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * Must be set to work with HPA.
     * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
     * subresource will default to the empty string.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelectorPath = 3;</code>
     */
    public java.lang.String getLabelSelectorPath() {
      java.lang.Object ref = labelSelectorPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          labelSelectorPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
     * Only JSON paths without the array notation are allowed.
     * Must be a JSON Path under .status.
     * Must be set to work with HPA.
     * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
     * subresource will default to the empty string.
     * +optional
     * </pre>
     *
     * <code>optional string labelSelectorPath = 3;</code>
     */
    public com.google.protobuf.ByteString getLabelSelectorPathBytes() {
      java.lang.Object ref = labelSelectorPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        labelSelectorPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, specReplicasPath_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, statusReplicasPath_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, labelSelectorPath_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasSpecReplicasPath() == other.hasSpecReplicasPath());
      if (hasSpecReplicasPath()) {
        result = result && getSpecReplicasPath().equals(other.getSpecReplicasPath());
      }
      result = result && (hasStatusReplicasPath() == other.hasStatusReplicasPath());
      if (hasStatusReplicasPath()) {
        result = result && getStatusReplicasPath().equals(other.getStatusReplicasPath());
      }
      result = result && (hasLabelSelectorPath() == other.hasLabelSelectorPath());
      if (hasLabelSelectorPath()) {
        result = result && getLabelSelectorPath().equals(other.getLabelSelectorPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSpecReplicasPath()) {
        hash = (37 * hash) + SPECREPLICASPATH_FIELD_NUMBER;
        hash = (53 * hash) + getSpecReplicasPath().hashCode();
      }
      if (hasStatusReplicasPath()) {
        hash = (37 * hash) + STATUSREPLICASPATH_FIELD_NUMBER;
        hash = (53 * hash) + getStatusReplicasPath().hashCode();
      }
      if (hasLabelSelectorPath()) {
        hash = (37 * hash) + LABELSELECTORPATH_FIELD_NUMBER;
        hash = (53 * hash) + getLabelSelectorPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScaleOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale_descriptor;
      }

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

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

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

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

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

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale(
                this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.specReplicasPath_ = specReplicasPath_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.statusReplicasPath_ = statusReplicasPath_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.labelSelectorPath_ = labelSelectorPath_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                .getDefaultInstance()) return this;
        if (other.hasSpecReplicasPath()) {
          bitField0_ |= 0x00000001;
          specReplicasPath_ = other.specReplicasPath_;
          onChanged();
        }
        if (other.hasStatusReplicasPath()) {
          bitField0_ |= 0x00000002;
          statusReplicasPath_ = other.statusReplicasPath_;
          onChanged();
        }
        if (other.hasLabelSelectorPath()) {
          bitField0_ |= 0x00000004;
          labelSelectorPath_ = other.labelSelectorPath_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object specReplicasPath_ = "";
      /**
       *
       *
       * <pre>
       * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .spec.
       * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
       * </pre>
       *
       * <code>optional string specReplicasPath = 1;</code>
       */
      public boolean hasSpecReplicasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .spec.
       * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
       * </pre>
       *
       * <code>optional string specReplicasPath = 1;</code>
       */
      public java.lang.String getSpecReplicasPath() {
        java.lang.Object ref = specReplicasPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            specReplicasPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .spec.
       * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
       * </pre>
       *
       * <code>optional string specReplicasPath = 1;</code>
       */
      public com.google.protobuf.ByteString getSpecReplicasPathBytes() {
        java.lang.Object ref = specReplicasPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          specReplicasPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .spec.
       * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
       * </pre>
       *
       * <code>optional string specReplicasPath = 1;</code>
       */
      public Builder setSpecReplicasPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        specReplicasPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .spec.
       * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
       * </pre>
       *
       * <code>optional string specReplicasPath = 1;</code>
       */
      public Builder clearSpecReplicasPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        specReplicasPath_ = getDefaultInstance().getSpecReplicasPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .spec.
       * If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
       * </pre>
       *
       * <code>optional string specReplicasPath = 1;</code>
       */
      public Builder setSpecReplicasPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        specReplicasPath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object statusReplicasPath_ = "";
      /**
       *
       *
       * <pre>
       * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
       * will default to 0.
       * </pre>
       *
       * <code>optional string statusReplicasPath = 2;</code>
       */
      public boolean hasStatusReplicasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
       * will default to 0.
       * </pre>
       *
       * <code>optional string statusReplicasPath = 2;</code>
       */
      public java.lang.String getStatusReplicasPath() {
        java.lang.Object ref = statusReplicasPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            statusReplicasPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
       * will default to 0.
       * </pre>
       *
       * <code>optional string statusReplicasPath = 2;</code>
       */
      public com.google.protobuf.ByteString getStatusReplicasPathBytes() {
        java.lang.Object ref = statusReplicasPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          statusReplicasPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
       * will default to 0.
       * </pre>
       *
       * <code>optional string statusReplicasPath = 2;</code>
       */
      public Builder setStatusReplicasPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        statusReplicasPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
       * will default to 0.
       * </pre>
       *
       * <code>optional string statusReplicasPath = 2;</code>
       */
      public Builder clearStatusReplicasPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        statusReplicasPath_ = getDefaultInstance().getStatusReplicasPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource
       * will default to 0.
       * </pre>
       *
       * <code>optional string statusReplicasPath = 2;</code>
       */
      public Builder setStatusReplicasPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        statusReplicasPath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object labelSelectorPath_ = "";
      /**
       *
       *
       * <pre>
       * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * Must be set to work with HPA.
       * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
       * subresource will default to the empty string.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelectorPath = 3;</code>
       */
      public boolean hasLabelSelectorPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * Must be set to work with HPA.
       * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
       * subresource will default to the empty string.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelectorPath = 3;</code>
       */
      public java.lang.String getLabelSelectorPath() {
        java.lang.Object ref = labelSelectorPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            labelSelectorPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * Must be set to work with HPA.
       * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
       * subresource will default to the empty string.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelectorPath = 3;</code>
       */
      public com.google.protobuf.ByteString getLabelSelectorPathBytes() {
        java.lang.Object ref = labelSelectorPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          labelSelectorPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * Must be set to work with HPA.
       * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
       * subresource will default to the empty string.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelectorPath = 3;</code>
       */
      public Builder setLabelSelectorPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        labelSelectorPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * Must be set to work with HPA.
       * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
       * subresource will default to the empty string.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelectorPath = 3;</code>
       */
      public Builder clearLabelSelectorPath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        labelSelectorPath_ = getDefaultInstance().getLabelSelectorPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector.
       * Only JSON paths without the array notation are allowed.
       * Must be a JSON Path under .status.
       * Must be set to work with HPA.
       * If there is no value under the given path in the CustomResource, the status label selector value in the /scale
       * subresource will default to the empty string.
       * +optional
       * </pre>
       *
       * <code>optional string labelSelectorPath = 3;</code>
       */
      public Builder setLabelSelectorPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        labelSelectorPath_ = value;
        onChanged();
        return this;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceSubresourceScale
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceSubresourceStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus)
      com.google.protobuf.MessageOrBuilder {}
  /**
   *
   *
   * <pre>
   * CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources.
   * Status is represented by the `.status` JSON path inside of a CustomResource. When set,
   * * exposes a /status subresource for the custom resource
   * * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza
   * * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus}
   */
  public static final class CustomResourceSubresourceStatus
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus)
      CustomResourceSubresourceStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceSubresourceStatus.newBuilder() to construct.
    private CustomResourceSubresourceStatus(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceSubresourceStatus() {}

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

    private CustomResourceSubresourceStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.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;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

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

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

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      unknownFields.writeTo(output);
    }

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

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources.
     * Status is represented by the `.status` JSON path inside of a CustomResource. When set,
     * * exposes a /status subresource for the custom resource
     * * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza
     * * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus_descriptor;
      }

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

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

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

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

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

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus(
                this);
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                .getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .CustomResourceSubresourceStatus
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceSubresourcesOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Status denotes the status subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
     * </code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status denotes the status subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status denotes the status subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatusOrBuilder
        getStatusOrBuilder();

    /**
     *
     *
     * <pre>
     * Scale denotes the scale subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
     * </code>
     */
    boolean hasScale();
    /**
     *
     *
     * <pre>
     * Scale denotes the scale subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale getScale();
    /**
     *
     *
     * <pre>
     * Scale denotes the scale subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScaleOrBuilder
        getScaleOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceSubresources defines the status and scale subresources for CustomResources.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources}
   */
  public static final class CustomResourceSubresources
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources)
      CustomResourceSubresourcesOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceSubresources.newBuilder() to construct.
    private CustomResourceSubresources(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceSubresources() {}

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

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

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

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

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus status_;
    /**
     *
     *
     * <pre>
     * Status denotes the status subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
     * </code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Status denotes the status subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
        getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
              .getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status denotes the status subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatusOrBuilder
        getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
              .getDefaultInstance()
          : status_;
    }

    public static final int SCALE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale scale_;
    /**
     *
     *
     * <pre>
     * Scale denotes the scale subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
     * </code>
     */
    public boolean hasScale() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Scale denotes the scale subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
        getScale() {
      return scale_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
              .getDefaultInstance()
          : scale_;
    }
    /**
     *
     *
     * <pre>
     * Scale denotes the scale subresource for CustomResources
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScaleOrBuilder
        getScaleOrBuilder() {
      return scale_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
              .getDefaultInstance()
          : scale_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasScale() == other.hasScale());
      if (hasScale()) {
        result = result && getScale().equals(other.getScale());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasScale()) {
        hash = (37 * hash) + SCALE_FIELD_NUMBER;
        hash = (53 * hash) + getScale().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceSubresources defines the status and scale subresources for CustomResources.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourcesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (scaleBuilder_ == null) {
          scale_ = null;
        } else {
          scaleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (scaleBuilder_ == null) {
          result.scale_ = scale_;
        } else {
          result.scale_ = scaleBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
                .getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        if (other.hasScale()) {
          mergeScale(other.getScale());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
          status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceSubresourceStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
          getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                  .getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus.Builder
              builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public Builder mergeStatus(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && status_ != null
              && status_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                      .getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                    .newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus.Builder
          getStatusBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions
              .CustomResourceSubresourceStatusOrBuilder
          getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                  .getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status denotes the status subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus status = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceSubresourceStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceStatus
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceSubresourceStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
          scale_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceSubresourceScaleOrBuilder>
          scaleBuilder_;
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public boolean hasScale() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
          getScale() {
        if (scaleBuilder_ == null) {
          return scale_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                  .getDefaultInstance()
              : scale_;
        } else {
          return scaleBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public Builder setScale(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale value) {
        if (scaleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scale_ = value;
          onChanged();
        } else {
          scaleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public Builder setScale(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale.Builder
              builderForValue) {
        if (scaleBuilder_ == null) {
          scale_ = builderForValue.build();
          onChanged();
        } else {
          scaleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public Builder mergeScale(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale value) {
        if (scaleBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && scale_ != null
              && scale_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                      .getDefaultInstance()) {
            scale_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                    .newBuilder(scale_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            scale_ = value;
          }
          onChanged();
        } else {
          scaleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public Builder clearScale() {
        if (scaleBuilder_ == null) {
          scale_ = null;
          onChanged();
        } else {
          scaleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale.Builder
          getScaleBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getScaleFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScaleOrBuilder
          getScaleOrBuilder() {
        if (scaleBuilder_ != null) {
          return scaleBuilder_.getMessageOrBuilder();
        } else {
          return scale_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                  .getDefaultInstance()
              : scale_;
        }
      }
      /**
       *
       *
       * <pre>
       * Scale denotes the scale subresource for CustomResources
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale scale = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale,
              io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                  .Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions
                  .CustomResourceSubresourceScaleOrBuilder>
          getScaleFieldBuilder() {
        if (scaleBuilder_ == null) {
          scaleBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale,
                  io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresourceScale
                      .Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions
                      .CustomResourceSubresourceScaleOrBuilder>(
                  getScale(), getParentForChildren(), isClean());
          scale_ = null;
        }
        return scaleBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceSubresources
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface CustomResourceValidationOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
     * </code>
     */
    boolean hasOpenAPIV3Schema();
    /**
     *
     *
     * <pre>
     * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getOpenAPIV3Schema();
    /**
     *
     *
     * <pre>
     * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getOpenAPIV3SchemaOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * CustomResourceValidation is a list of validation methods for CustomResources.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation}
   */
  public static final class CustomResourceValidation extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation)
      CustomResourceValidationOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CustomResourceValidation.newBuilder() to construct.
    private CustomResourceValidation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CustomResourceValidation() {}

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

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

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

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

    private int bitField0_;
    public static final int OPENAPIV3SCHEMA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps openAPIV3Schema_;
    /**
     *
     *
     * <pre>
     * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
     * </code>
     */
    public boolean hasOpenAPIV3Schema() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getOpenAPIV3Schema() {
      return openAPIV3Schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : openAPIV3Schema_;
    }
    /**
     *
     *
     * <pre>
     * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getOpenAPIV3SchemaOrBuilder() {
      return openAPIV3Schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : openAPIV3Schema_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * CustomResourceValidation is a list of validation methods for CustomResources.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation)
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceValidation_descriptor;
      }

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

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

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

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

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (openAPIV3SchemaBuilder_ == null) {
          openAPIV3Schema_ = null;
        } else {
          openAPIV3SchemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (openAPIV3SchemaBuilder_ == null) {
          result.openAPIV3Schema_ = openAPIV3Schema_;
        } else {
          result.openAPIV3Schema_ = openAPIV3SchemaBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
                .getDefaultInstance()) return this;
        if (other.hasOpenAPIV3Schema()) {
          mergeOpenAPIV3Schema(other.getOpenAPIV3Schema());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps openAPIV3Schema_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          openAPIV3SchemaBuilder_;
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public boolean hasOpenAPIV3Schema() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getOpenAPIV3Schema() {
        if (openAPIV3SchemaBuilder_ == null) {
          return openAPIV3Schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : openAPIV3Schema_;
        } else {
          return openAPIV3SchemaBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public Builder setOpenAPIV3Schema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (openAPIV3SchemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          openAPIV3Schema_ = value;
          onChanged();
        } else {
          openAPIV3SchemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public Builder setOpenAPIV3Schema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (openAPIV3SchemaBuilder_ == null) {
          openAPIV3Schema_ = builderForValue.build();
          onChanged();
        } else {
          openAPIV3SchemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public Builder mergeOpenAPIV3Schema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (openAPIV3SchemaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && openAPIV3Schema_ != null
              && openAPIV3Schema_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                      .getDefaultInstance()) {
            openAPIV3Schema_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.newBuilder(
                        openAPIV3Schema_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            openAPIV3Schema_ = value;
          }
          onChanged();
        } else {
          openAPIV3SchemaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public Builder clearOpenAPIV3Schema() {
        if (openAPIV3SchemaBuilder_ == null) {
          openAPIV3Schema_ = null;
          onChanged();
        } else {
          openAPIV3SchemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getOpenAPIV3SchemaBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getOpenAPIV3SchemaFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getOpenAPIV3SchemaOrBuilder() {
        if (openAPIV3SchemaBuilder_ != null) {
          return openAPIV3SchemaBuilder_.getMessageOrBuilder();
        } else {
          return openAPIV3Schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : openAPIV3Schema_;
        }
      }
      /**
       *
       *
       * <pre>
       * OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps openAPIV3Schema = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getOpenAPIV3SchemaFieldBuilder() {
        if (openAPIV3SchemaBuilder_ == null) {
          openAPIV3SchemaBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  getOpenAPIV3Schema(), getParentForChildren(), isClean());
          openAPIV3Schema_ = null;
        }
        return openAPIV3SchemaBuilder_;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.CustomResourceValidation
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface ExternalDocumentationOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional string description = 1;</code> */
    boolean hasDescription();
    /** <code>optional string description = 1;</code> */
    java.lang.String getDescription();
    /** <code>optional string description = 1;</code> */
    com.google.protobuf.ByteString getDescriptionBytes();

    /** <code>optional string url = 2;</code> */
    boolean hasUrl();
    /** <code>optional string url = 2;</code> */
    java.lang.String getUrl();
    /** <code>optional string url = 2;</code> */
    com.google.protobuf.ByteString getUrlBytes();
  }
  /**
   *
   *
   * <pre>
   * ExternalDocumentation allows referencing an external resource for extended documentation.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation}
   */
  public static final class ExternalDocumentation extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation)
      ExternalDocumentationOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ExternalDocumentation.newBuilder() to construct.
    private ExternalDocumentation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ExternalDocumentation() {
      description_ = "";
      url_ = "";
    }

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

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

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

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

    private int bitField0_;
    public static final int DESCRIPTION_FIELD_NUMBER = 1;
    private volatile java.lang.Object description_;
    /** <code>optional string description = 1;</code> */
    public boolean hasDescription() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional string description = 1;</code> */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          description_ = s;
        }
        return s;
      }
    }
    /** <code>optional string description = 1;</code> */
    public com.google.protobuf.ByteString getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int URL_FIELD_NUMBER = 2;
    private volatile java.lang.Object url_;
    /** <code>optional string url = 2;</code> */
    public boolean hasUrl() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /** <code>optional string url = 2;</code> */
    public java.lang.String getUrl() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          url_ = s;
        }
        return s;
      }
    }
    /** <code>optional string url = 2;</code> */
    public com.google.protobuf.ByteString getUrlBytes() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        url_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

      boolean result = true;
      result = result && (hasDescription() == other.hasDescription());
      if (hasDescription()) {
        result = result && getDescription().equals(other.getDescription());
      }
      result = result && (hasUrl() == other.hasUrl());
      if (hasUrl()) {
        result = result && getUrl().equals(other.getUrl());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDescription()) {
        hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getDescription().hashCode();
      }
      if (hasUrl()) {
        hash = (37 * hash) + URL_FIELD_NUMBER;
        hash = (53 * hash) + getUrl().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ExternalDocumentation allows referencing an external resource for extended documentation.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation)
        io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ExternalDocumentation_descriptor;
      }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
                .getDefaultInstance()) return this;
        if (other.hasDescription()) {
          bitField0_ |= 0x00000001;
          description_ = other.description_;
          onChanged();
        }
        if (other.hasUrl()) {
          bitField0_ |= 0x00000002;
          url_ = other.url_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int bitField0_;

      private java.lang.Object description_ = "";
      /** <code>optional string description = 1;</code> */
      public boolean hasDescription() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /** <code>optional string description = 1;</code> */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            description_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string description = 1;</code> */
      public com.google.protobuf.ByteString getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string description = 1;</code> */
      public Builder setDescription(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        description_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string description = 1;</code> */
      public Builder clearDescription() {
        bitField0_ = (bitField0_ & ~0x00000001);
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /** <code>optional string description = 1;</code> */
      public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        description_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object url_ = "";
      /** <code>optional string url = 2;</code> */
      public boolean hasUrl() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /** <code>optional string url = 2;</code> */
      public java.lang.String getUrl() {
        java.lang.Object ref = url_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            url_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string url = 2;</code> */
      public com.google.protobuf.ByteString getUrlBytes() {
        java.lang.Object ref = url_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          url_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string url = 2;</code> */
      public Builder setUrl(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        url_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string url = 2;</code> */
      public Builder clearUrl() {
        bitField0_ = (bitField0_ & ~0x00000002);
        url_ = getDefaultInstance().getUrl();
        onChanged();
        return this;
      }
      /** <code>optional string url = 2;</code> */
      public Builder setUrlBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        url_ = value;
        onChanged();
        return this;
      }

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

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

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  public interface JSONOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional bytes raw = 1;</code> */
    boolean hasRaw();
    /** <code>optional bytes raw = 1;</code> */
    com.google.protobuf.ByteString getRaw();
  }
  /**
   *
   *
   * <pre>
   * JSON represents any valid JSON value.
   * These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.
   * </pre>
   *
   * Protobuf type {@code k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON}
   */
  public static final class JSON extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON)
      JSONOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use JSON.newBuilder() to construct.
    private JSON(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private JSON() {
      raw_ = com.google.protobuf.ByteString.EMPTY;
    }

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

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

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

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

    private int bitField0_;
    public static final int RAW_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString raw_;
    /** <code>optional bytes raw = 1;</code> */
    public boolean hasRaw() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional bytes raw = 1;</code> */
    public com.google.protobuf.ByteString getRaw() {
      return raw_;
    }

    private byte memoizedIsInitialized = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, raw_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSON parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.JSON prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * JSON represents any valid JSON value.
     * These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.
     * </pre>
     *
     * Protobuf type {@code k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON)
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSON.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1beta1Apiextensions.JSON.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        raw_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSON result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSON result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.JSON(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.raw_ = raw_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1beta1Apiextensions.JSON) {
          return mergeFrom((io.kubernetes.client.proto.V1beta1Apiextensions.JSON) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1beta1Apiextensions.JSON other) {
        if (other == io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance())
          return this;
        if (other.hasRaw()) {
          setRaw(other.getRaw());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSON parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSON) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString raw_ = com.google.protobuf.ByteString.EMPTY;
      /** <code>optional bytes raw = 1;</code> */
      public boolean hasRaw() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /** <code>optional bytes raw = 1;</code> */
      public com.google.protobuf.ByteString getRaw() {
        return raw_;
      }
      /** <code>optional bytes raw = 1;</code> */
      public Builder setRaw(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        raw_ = value;
        onChanged();
        return this;
      }
      /** <code>optional bytes raw = 1;</code> */
      public Builder clearRaw() {
        bitField0_ = (bitField0_ & ~0x00000001);
        raw_ = getDefaultInstance().getRaw();
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.JSON DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.JSON();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSON getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<JSON> PARSER =
        new com.google.protobuf.AbstractParser<JSON>() {
          @java.lang.Override
          public JSON parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new JSON(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<JSON> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JSON> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface JSONSchemaPropsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional string id = 1;</code> */
    boolean hasId();
    /** <code>optional string id = 1;</code> */
    java.lang.String getId();
    /** <code>optional string id = 1;</code> */
    com.google.protobuf.ByteString getIdBytes();

    /** <code>optional string schema = 2;</code> */
    boolean hasSchema();
    /** <code>optional string schema = 2;</code> */
    java.lang.String getSchema();
    /** <code>optional string schema = 2;</code> */
    com.google.protobuf.ByteString getSchemaBytes();

    /** <code>optional string ref = 3;</code> */
    boolean hasRef();
    /** <code>optional string ref = 3;</code> */
    java.lang.String getRef();
    /** <code>optional string ref = 3;</code> */
    com.google.protobuf.ByteString getRefBytes();

    /** <code>optional string description = 4;</code> */
    boolean hasDescription();
    /** <code>optional string description = 4;</code> */
    java.lang.String getDescription();
    /** <code>optional string description = 4;</code> */
    com.google.protobuf.ByteString getDescriptionBytes();

    /** <code>optional string type = 5;</code> */
    boolean hasType();
    /** <code>optional string type = 5;</code> */
    java.lang.String getType();
    /** <code>optional string type = 5;</code> */
    com.google.protobuf.ByteString getTypeBytes();

    /** <code>optional string format = 6;</code> */
    boolean hasFormat();
    /** <code>optional string format = 6;</code> */
    java.lang.String getFormat();
    /** <code>optional string format = 6;</code> */
    com.google.protobuf.ByteString getFormatBytes();

    /** <code>optional string title = 7;</code> */
    boolean hasTitle();
    /** <code>optional string title = 7;</code> */
    java.lang.String getTitle();
    /** <code>optional string title = 7;</code> */
    com.google.protobuf.ByteString getTitleBytes();

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
     * </code>
     */
    boolean hasDefault();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSON getDefault();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getDefaultOrBuilder();

    /** <code>optional double maximum = 9;</code> */
    boolean hasMaximum();
    /** <code>optional double maximum = 9;</code> */
    double getMaximum();

    /** <code>optional bool exclusiveMaximum = 10;</code> */
    boolean hasExclusiveMaximum();
    /** <code>optional bool exclusiveMaximum = 10;</code> */
    boolean getExclusiveMaximum();

    /** <code>optional double minimum = 11;</code> */
    boolean hasMinimum();
    /** <code>optional double minimum = 11;</code> */
    double getMinimum();

    /** <code>optional bool exclusiveMinimum = 12;</code> */
    boolean hasExclusiveMinimum();
    /** <code>optional bool exclusiveMinimum = 12;</code> */
    boolean getExclusiveMinimum();

    /** <code>optional int64 maxLength = 13;</code> */
    boolean hasMaxLength();
    /** <code>optional int64 maxLength = 13;</code> */
    long getMaxLength();

    /** <code>optional int64 minLength = 14;</code> */
    boolean hasMinLength();
    /** <code>optional int64 minLength = 14;</code> */
    long getMinLength();

    /** <code>optional string pattern = 15;</code> */
    boolean hasPattern();
    /** <code>optional string pattern = 15;</code> */
    java.lang.String getPattern();
    /** <code>optional string pattern = 15;</code> */
    com.google.protobuf.ByteString getPatternBytes();

    /** <code>optional int64 maxItems = 16;</code> */
    boolean hasMaxItems();
    /** <code>optional int64 maxItems = 16;</code> */
    long getMaxItems();

    /** <code>optional int64 minItems = 17;</code> */
    boolean hasMinItems();
    /** <code>optional int64 minItems = 17;</code> */
    long getMinItems();

    /** <code>optional bool uniqueItems = 18;</code> */
    boolean hasUniqueItems();
    /** <code>optional bool uniqueItems = 18;</code> */
    boolean getUniqueItems();

    /** <code>optional double multipleOf = 19;</code> */
    boolean hasMultipleOf();
    /** <code>optional double multipleOf = 19;</code> */
    double getMultipleOf();

    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSON> getEnumList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSON getEnum(int index);
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    int getEnumCount();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
        getEnumOrBuilderList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getEnumOrBuilder(int index);

    /** <code>optional int64 maxProperties = 21;</code> */
    boolean hasMaxProperties();
    /** <code>optional int64 maxProperties = 21;</code> */
    long getMaxProperties();

    /** <code>optional int64 minProperties = 22;</code> */
    boolean hasMinProperties();
    /** <code>optional int64 minProperties = 22;</code> */
    long getMinProperties();

    /** <code>repeated string required = 23;</code> */
    java.util.List<java.lang.String> getRequiredList();
    /** <code>repeated string required = 23;</code> */
    int getRequiredCount();
    /** <code>repeated string required = 23;</code> */
    java.lang.String getRequired(int index);
    /** <code>repeated string required = 23;</code> */
    com.google.protobuf.ByteString getRequiredBytes(int index);

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
     * </code>
     */
    boolean hasItems();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray getItems();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder
        getItemsOrBuilder();

    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps> getAllOfList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getAllOf(int index);
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    int getAllOfCount();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getAllOfOrBuilderList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getAllOfOrBuilder(
        int index);

    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps> getOneOfList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getOneOf(int index);
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    int getOneOfCount();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getOneOfOrBuilderList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getOneOfOrBuilder(
        int index);

    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps> getAnyOfList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getAnyOf(int index);
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    int getAnyOfCount();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getAnyOfOrBuilderList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getAnyOfOrBuilder(
        int index);

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
     * </code>
     */
    boolean hasNot();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getNot();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getNotOrBuilder();

    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    int getPropertiesCount();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    boolean containsProperties(java.lang.String key);
    /** Use {@link #getPropertiesMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getProperties();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getPropertiesMap();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPropertiesOrDefault(
        java.lang.String key,
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue);
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPropertiesOrThrow(
        java.lang.String key);

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
     * </code>
     */
    boolean hasAdditionalProperties();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool getAdditionalProperties();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder
        getAdditionalPropertiesOrBuilder();

    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    int getPatternPropertiesCount();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    boolean containsPatternProperties(java.lang.String key);
    /** Use {@link #getPatternPropertiesMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getPatternProperties();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getPatternPropertiesMap();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPatternPropertiesOrDefault(
        java.lang.String key,
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue);
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPatternPropertiesOrThrow(
        java.lang.String key);

    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    int getDependenciesCount();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    boolean containsDependencies(java.lang.String key);
    /** Use {@link #getDependenciesMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<
            java.lang.String,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
        getDependencies();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    java.util.Map<
            java.lang.String,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
        getDependenciesMap();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        getDependenciesOrDefault(
            java.lang.String key,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
                defaultValue);
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        getDependenciesOrThrow(java.lang.String key);

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
     * </code>
     */
    boolean hasAdditionalItems();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool getAdditionalItems();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder
        getAdditionalItemsOrBuilder();

    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    int getDefinitionsCount();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    boolean containsDefinitions(java.lang.String key);
    /** Use {@link #getDefinitionsMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getDefinitions();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getDefinitionsMap();
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getDefinitionsOrDefault(
        java.lang.String key,
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue);
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getDefinitionsOrThrow(
        java.lang.String key);

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
     * </code>
     */
    boolean hasExternalDocs();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation getExternalDocs();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder
        getExternalDocsOrBuilder();

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
     * </code>
     */
    boolean hasExample();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSON getExample();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getExampleOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps}
   */
  public static final class JSONSchemaProps extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps)
      JSONSchemaPropsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use JSONSchemaProps.newBuilder() to construct.
    private JSONSchemaProps(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private JSONSchemaProps() {
      id_ = "";
      schema_ = "";
      ref_ = "";
      description_ = "";
      type_ = "";
      format_ = "";
      title_ = "";
      maximum_ = 0D;
      exclusiveMaximum_ = false;
      minimum_ = 0D;
      exclusiveMinimum_ = false;
      maxLength_ = 0L;
      minLength_ = 0L;
      pattern_ = "";
      maxItems_ = 0L;
      minItems_ = 0L;
      uniqueItems_ = false;
      multipleOf_ = 0D;
      enum_ = java.util.Collections.emptyList();
      maxProperties_ = 0L;
      minProperties_ = 0L;
      required_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      allOf_ = java.util.Collections.emptyList();
      oneOf_ = java.util.Collections.emptyList();
      anyOf_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private JSONSchemaProps(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      int mutable_bitField1_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                id_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                schema_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                ref_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                description_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                type_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                format_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                title_ = bs;
                break;
              }
            case 66:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder subBuilder = null;
                if (((bitField0_ & 0x00000080) == 0x00000080)) {
                  subBuilder = default_.toBuilder();
                }
                default_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSON.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(default_);
                  default_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000080;
                break;
              }
            case 73:
              {
                bitField0_ |= 0x00000100;
                maximum_ = input.readDouble();
                break;
              }
            case 80:
              {
                bitField0_ |= 0x00000200;
                exclusiveMaximum_ = input.readBool();
                break;
              }
            case 89:
              {
                bitField0_ |= 0x00000400;
                minimum_ = input.readDouble();
                break;
              }
            case 96:
              {
                bitField0_ |= 0x00000800;
                exclusiveMinimum_ = input.readBool();
                break;
              }
            case 104:
              {
                bitField0_ |= 0x00001000;
                maxLength_ = input.readInt64();
                break;
              }
            case 112:
              {
                bitField0_ |= 0x00002000;
                minLength_ = input.readInt64();
                break;
              }
            case 122:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00004000;
                pattern_ = bs;
                break;
              }
            case 128:
              {
                bitField0_ |= 0x00008000;
                maxItems_ = input.readInt64();
                break;
              }
            case 136:
              {
                bitField0_ |= 0x00010000;
                minItems_ = input.readInt64();
                break;
              }
            case 144:
              {
                bitField0_ |= 0x00020000;
                uniqueItems_ = input.readBool();
                break;
              }
            case 153:
              {
                bitField0_ |= 0x00040000;
                multipleOf_ = input.readDouble();
                break;
              }
            case 162:
              {
                if (!((mutable_bitField0_ & 0x00080000) == 0x00080000)) {
                  enum_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSON>();
                  mutable_bitField0_ |= 0x00080000;
                }
                enum_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSON.PARSER,
                        extensionRegistry));
                break;
              }
            case 168:
              {
                bitField0_ |= 0x00080000;
                maxProperties_ = input.readInt64();
                break;
              }
            case 176:
              {
                bitField0_ |= 0x00100000;
                minProperties_ = input.readInt64();
                break;
              }
            case 186:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00400000) == 0x00400000)) {
                  required_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00400000;
                }
                required_.add(bs);
                break;
              }
            case 194:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00200000) == 0x00200000)) {
                  subBuilder = items_.toBuilder();
                }
                items_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(items_);
                  items_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00200000;
                break;
              }
            case 202:
              {
                if (!((mutable_bitField0_ & 0x01000000) == 0x01000000)) {
                  allOf_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>();
                  mutable_bitField0_ |= 0x01000000;
                }
                allOf_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry));
                break;
              }
            case 210:
              {
                if (!((mutable_bitField0_ & 0x02000000) == 0x02000000)) {
                  oneOf_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>();
                  mutable_bitField0_ |= 0x02000000;
                }
                oneOf_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry));
                break;
              }
            case 218:
              {
                if (!((mutable_bitField0_ & 0x04000000) == 0x04000000)) {
                  anyOf_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>();
                  mutable_bitField0_ |= 0x04000000;
                }
                anyOf_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry));
                break;
              }
            case 226:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00400000) == 0x00400000)) {
                  subBuilder = not_.toBuilder();
                }
                not_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(not_);
                  not_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00400000;
                break;
              }
            case 234:
              {
                if (!((mutable_bitField0_ & 0x10000000) == 0x10000000)) {
                  properties_ =
                      com.google.protobuf.MapField.newMapField(
                          PropertiesDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x10000000;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String,
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
                    properties__ =
                        input.readMessage(
                            PropertiesDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                properties_.getMutableMap().put(properties__.getKey(), properties__.getValue());
                break;
              }
            case 242:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00800000) == 0x00800000)) {
                  subBuilder = additionalProperties_.toBuilder();
                }
                additionalProperties_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(additionalProperties_);
                  additionalProperties_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00800000;
                break;
              }
            case 250:
              {
                if (!((mutable_bitField0_ & 0x40000000) == 0x40000000)) {
                  patternProperties_ =
                      com.google.protobuf.MapField.newMapField(
                          PatternPropertiesDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x40000000;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String,
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
                    patternProperties__ =
                        input.readMessage(
                            PatternPropertiesDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                patternProperties_
                    .getMutableMap()
                    .put(patternProperties__.getKey(), patternProperties__.getValue());
                break;
              }
            case 258:
              {
                if (!((mutable_bitField0_ & 0x80000000) == 0x80000000)) {
                  dependencies_ =
                      com.google.protobuf.MapField.newMapField(
                          DependenciesDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x80000000;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String,
                        io.kubernetes.client.proto.V1beta1Apiextensions
                            .JSONSchemaPropsOrStringArray>
                    dependencies__ =
                        input.readMessage(
                            DependenciesDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                dependencies_
                    .getMutableMap()
                    .put(dependencies__.getKey(), dependencies__.getValue());
                break;
              }
            case 266:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x01000000) == 0x01000000)) {
                  subBuilder = additionalItems_.toBuilder();
                }
                additionalItems_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(additionalItems_);
                  additionalItems_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x01000000;
                break;
              }
            case 274:
              {
                if (!((mutable_bitField1_ & 0x00000002) == 0x00000002)) {
                  definitions_ =
                      com.google.protobuf.MapField.newMapField(
                          DefinitionsDefaultEntryHolder.defaultEntry);
                  mutable_bitField1_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String,
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
                    definitions__ =
                        input.readMessage(
                            DefinitionsDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                definitions_.getMutableMap().put(definitions__.getKey(), definitions__.getValue());
                break;
              }
            case 282:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x02000000) == 0x02000000)) {
                  subBuilder = externalDocs_.toBuilder();
                }
                externalDocs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
                            .PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(externalDocs_);
                  externalDocs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x02000000;
                break;
              }
            case 290:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder subBuilder = null;
                if (((bitField0_ & 0x04000000) == 0x04000000)) {
                  subBuilder = example_.toBuilder();
                }
                example_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSON.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(example_);
                  example_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x04000000;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00080000) == 0x00080000)) {
          enum_ = java.util.Collections.unmodifiableList(enum_);
        }
        if (((mutable_bitField0_ & 0x00400000) == 0x00400000)) {
          required_ = required_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x01000000) == 0x01000000)) {
          allOf_ = java.util.Collections.unmodifiableList(allOf_);
        }
        if (((mutable_bitField0_ & 0x02000000) == 0x02000000)) {
          oneOf_ = java.util.Collections.unmodifiableList(oneOf_);
        }
        if (((mutable_bitField0_ & 0x04000000) == 0x04000000)) {
          anyOf_ = java.util.Collections.unmodifiableList(anyOf_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 29:
          return internalGetProperties();
        case 31:
          return internalGetPatternProperties();
        case 32:
          return internalGetDependencies();
        case 34:
          return internalGetDefinitions();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.class,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder.class);
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object id_;
    /** <code>optional string id = 1;</code> */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional string id = 1;</code> */
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          id_ = s;
        }
        return s;
      }
    }
    /** <code>optional string id = 1;</code> */
    public com.google.protobuf.ByteString getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCHEMA_FIELD_NUMBER = 2;
    private volatile java.lang.Object schema_;
    /** <code>optional string schema = 2;</code> */
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /** <code>optional string schema = 2;</code> */
    public java.lang.String getSchema() {
      java.lang.Object ref = schema_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          schema_ = s;
        }
        return s;
      }
    }
    /** <code>optional string schema = 2;</code> */
    public com.google.protobuf.ByteString getSchemaBytes() {
      java.lang.Object ref = schema_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        schema_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REF_FIELD_NUMBER = 3;
    private volatile java.lang.Object ref_;
    /** <code>optional string ref = 3;</code> */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /** <code>optional string ref = 3;</code> */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /** <code>optional string ref = 3;</code> */
    public com.google.protobuf.ByteString getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 4;
    private volatile java.lang.Object description_;
    /** <code>optional string description = 4;</code> */
    public boolean hasDescription() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /** <code>optional string description = 4;</code> */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          description_ = s;
        }
        return s;
      }
    }
    /** <code>optional string description = 4;</code> */
    public com.google.protobuf.ByteString getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 5;
    private volatile java.lang.Object type_;
    /** <code>optional string type = 5;</code> */
    public boolean hasType() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /** <code>optional string type = 5;</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 = 5;</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 FORMAT_FIELD_NUMBER = 6;
    private volatile java.lang.Object format_;
    /** <code>optional string format = 6;</code> */
    public boolean hasFormat() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /** <code>optional string format = 6;</code> */
    public java.lang.String getFormat() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          format_ = s;
        }
        return s;
      }
    }
    /** <code>optional string format = 6;</code> */
    public com.google.protobuf.ByteString getFormatBytes() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        format_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TITLE_FIELD_NUMBER = 7;
    private volatile java.lang.Object title_;
    /** <code>optional string title = 7;</code> */
    public boolean hasTitle() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /** <code>optional string title = 7;</code> */
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          title_ = s;
        }
        return s;
      }
    }
    /** <code>optional string title = 7;</code> */
    public com.google.protobuf.ByteString getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEFAULT_FIELD_NUMBER = 8;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSON default_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
     * </code>
     */
    public boolean hasDefault() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getDefault() {
      return default_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
          : default_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getDefaultOrBuilder() {
      return default_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
          : default_;
    }

    public static final int MAXIMUM_FIELD_NUMBER = 9;
    private double maximum_;
    /** <code>optional double maximum = 9;</code> */
    public boolean hasMaximum() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /** <code>optional double maximum = 9;</code> */
    public double getMaximum() {
      return maximum_;
    }

    public static final int EXCLUSIVEMAXIMUM_FIELD_NUMBER = 10;
    private boolean exclusiveMaximum_;
    /** <code>optional bool exclusiveMaximum = 10;</code> */
    public boolean hasExclusiveMaximum() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /** <code>optional bool exclusiveMaximum = 10;</code> */
    public boolean getExclusiveMaximum() {
      return exclusiveMaximum_;
    }

    public static final int MINIMUM_FIELD_NUMBER = 11;
    private double minimum_;
    /** <code>optional double minimum = 11;</code> */
    public boolean hasMinimum() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /** <code>optional double minimum = 11;</code> */
    public double getMinimum() {
      return minimum_;
    }

    public static final int EXCLUSIVEMINIMUM_FIELD_NUMBER = 12;
    private boolean exclusiveMinimum_;
    /** <code>optional bool exclusiveMinimum = 12;</code> */
    public boolean hasExclusiveMinimum() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /** <code>optional bool exclusiveMinimum = 12;</code> */
    public boolean getExclusiveMinimum() {
      return exclusiveMinimum_;
    }

    public static final int MAXLENGTH_FIELD_NUMBER = 13;
    private long maxLength_;
    /** <code>optional int64 maxLength = 13;</code> */
    public boolean hasMaxLength() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /** <code>optional int64 maxLength = 13;</code> */
    public long getMaxLength() {
      return maxLength_;
    }

    public static final int MINLENGTH_FIELD_NUMBER = 14;
    private long minLength_;
    /** <code>optional int64 minLength = 14;</code> */
    public boolean hasMinLength() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /** <code>optional int64 minLength = 14;</code> */
    public long getMinLength() {
      return minLength_;
    }

    public static final int PATTERN_FIELD_NUMBER = 15;
    private volatile java.lang.Object pattern_;
    /** <code>optional string pattern = 15;</code> */
    public boolean hasPattern() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /** <code>optional string pattern = 15;</code> */
    public java.lang.String getPattern() {
      java.lang.Object ref = pattern_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          pattern_ = s;
        }
        return s;
      }
    }
    /** <code>optional string pattern = 15;</code> */
    public com.google.protobuf.ByteString getPatternBytes() {
      java.lang.Object ref = pattern_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pattern_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAXITEMS_FIELD_NUMBER = 16;
    private long maxItems_;
    /** <code>optional int64 maxItems = 16;</code> */
    public boolean hasMaxItems() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /** <code>optional int64 maxItems = 16;</code> */
    public long getMaxItems() {
      return maxItems_;
    }

    public static final int MINITEMS_FIELD_NUMBER = 17;
    private long minItems_;
    /** <code>optional int64 minItems = 17;</code> */
    public boolean hasMinItems() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /** <code>optional int64 minItems = 17;</code> */
    public long getMinItems() {
      return minItems_;
    }

    public static final int UNIQUEITEMS_FIELD_NUMBER = 18;
    private boolean uniqueItems_;
    /** <code>optional bool uniqueItems = 18;</code> */
    public boolean hasUniqueItems() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /** <code>optional bool uniqueItems = 18;</code> */
    public boolean getUniqueItems() {
      return uniqueItems_;
    }

    public static final int MULTIPLEOF_FIELD_NUMBER = 19;
    private double multipleOf_;
    /** <code>optional double multipleOf = 19;</code> */
    public boolean hasMultipleOf() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /** <code>optional double multipleOf = 19;</code> */
    public double getMultipleOf() {
      return multipleOf_;
    }

    public static final int ENUM_FIELD_NUMBER = 20;
    private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSON> enum_;
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSON> getEnumList() {
      return enum_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
        getEnumOrBuilderList() {
      return enum_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    public int getEnumCount() {
      return enum_.size();
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getEnum(int index) {
      return enum_.get(index);
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getEnumOrBuilder(
        int index) {
      return enum_.get(index);
    }

    public static final int MAXPROPERTIES_FIELD_NUMBER = 21;
    private long maxProperties_;
    /** <code>optional int64 maxProperties = 21;</code> */
    public boolean hasMaxProperties() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /** <code>optional int64 maxProperties = 21;</code> */
    public long getMaxProperties() {
      return maxProperties_;
    }

    public static final int MINPROPERTIES_FIELD_NUMBER = 22;
    private long minProperties_;
    /** <code>optional int64 minProperties = 22;</code> */
    public boolean hasMinProperties() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /** <code>optional int64 minProperties = 22;</code> */
    public long getMinProperties() {
      return minProperties_;
    }

    public static final int REQUIRED_FIELD_NUMBER = 23;
    private com.google.protobuf.LazyStringList required_;
    /** <code>repeated string required = 23;</code> */
    public com.google.protobuf.ProtocolStringList getRequiredList() {
      return required_;
    }
    /** <code>repeated string required = 23;</code> */
    public int getRequiredCount() {
      return required_.size();
    }
    /** <code>repeated string required = 23;</code> */
    public java.lang.String getRequired(int index) {
      return required_.get(index);
    }
    /** <code>repeated string required = 23;</code> */
    public com.google.protobuf.ByteString getRequiredBytes(int index) {
      return required_.getByteString(index);
    }

    public static final int ITEMS_FIELD_NUMBER = 24;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray items_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
     * </code>
     */
    public boolean hasItems() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray getItems() {
      return items_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
              .getDefaultInstance()
          : items_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder
        getItemsOrBuilder() {
      return items_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
              .getDefaultInstance()
          : items_;
    }

    public static final int ALLOF_FIELD_NUMBER = 25;
    private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps> allOf_;
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getAllOfList() {
      return allOf_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getAllOfOrBuilderList() {
      return allOf_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    public int getAllOfCount() {
      return allOf_.size();
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getAllOf(int index) {
      return allOf_.get(index);
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getAllOfOrBuilder(int index) {
      return allOf_.get(index);
    }

    public static final int ONEOF_FIELD_NUMBER = 26;
    private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps> oneOf_;
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getOneOfList() {
      return oneOf_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getOneOfOrBuilderList() {
      return oneOf_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    public int getOneOfCount() {
      return oneOf_.size();
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getOneOf(int index) {
      return oneOf_.get(index);
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getOneOfOrBuilder(int index) {
      return oneOf_.get(index);
    }

    public static final int ANYOF_FIELD_NUMBER = 27;
    private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps> anyOf_;
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getAnyOfList() {
      return anyOf_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getAnyOfOrBuilderList() {
      return anyOf_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    public int getAnyOfCount() {
      return anyOf_.size();
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getAnyOf(int index) {
      return anyOf_.get(index);
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getAnyOfOrBuilder(int index) {
      return anyOf_.get(index);
    }

    public static final int NOT_FIELD_NUMBER = 28;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps not_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
     * </code>
     */
    public boolean hasNot() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getNot() {
      return not_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : not_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getNotOrBuilder() {
      return not_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : not_;
    }

    public static final int PROPERTIES_FIELD_NUMBER = 29;

    private static final class PropertiesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String,
                      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
                      newDefaultInstance(
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PropertiesEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                              .getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        properties_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        internalGetProperties() {
      if (properties_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            PropertiesDefaultEntryHolder.defaultEntry);
      }
      return properties_;
    }

    public int getPropertiesCount() {
      return internalGetProperties().getMap().size();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    public boolean containsProperties(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetProperties().getMap().containsKey(key);
    }
    /** Use {@link #getPropertiesMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getProperties() {
      return getPropertiesMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    public java.util.Map<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getPropertiesMap() {
      return internalGetProperties().getMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPropertiesOrDefault(
        java.lang.String key,
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          map = internalGetProperties().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPropertiesOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          map = internalGetProperties().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ADDITIONALPROPERTIES_FIELD_NUMBER = 30;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        additionalProperties_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
     * </code>
     */
    public boolean hasAdditionalProperties() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        getAdditionalProperties() {
      return additionalProperties_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
              .getDefaultInstance()
          : additionalProperties_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder
        getAdditionalPropertiesOrBuilder() {
      return additionalProperties_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
              .getDefaultInstance()
          : additionalProperties_;
    }

    public static final int PATTERNPROPERTIES_FIELD_NUMBER = 31;

    private static final class PatternPropertiesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String,
                      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
                      newDefaultInstance(
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PatternPropertiesEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                              .getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        patternProperties_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        internalGetPatternProperties() {
      if (patternProperties_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            PatternPropertiesDefaultEntryHolder.defaultEntry);
      }
      return patternProperties_;
    }

    public int getPatternPropertiesCount() {
      return internalGetPatternProperties().getMap().size();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    public boolean containsPatternProperties(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetPatternProperties().getMap().containsKey(key);
    }
    /** Use {@link #getPatternPropertiesMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getPatternProperties() {
      return getPatternPropertiesMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    public java.util.Map<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getPatternPropertiesMap() {
      return internalGetPatternProperties().getMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        getPatternPropertiesOrDefault(
            java.lang.String key,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          map = internalGetPatternProperties().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        getPatternPropertiesOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          map = internalGetPatternProperties().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int DEPENDENCIES_FIELD_NUMBER = 32;

    private static final class DependenciesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String,
                      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
                      newDefaultInstance(
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DependenciesEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .JSONSchemaPropsOrStringArray.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
        dependencies_;

    private com.google.protobuf.MapField<
            java.lang.String,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
        internalGetDependencies() {
      if (dependencies_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            DependenciesDefaultEntryHolder.defaultEntry);
      }
      return dependencies_;
    }

    public int getDependenciesCount() {
      return internalGetDependencies().getMap().size();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    public boolean containsDependencies(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetDependencies().getMap().containsKey(key);
    }
    /** Use {@link #getDependenciesMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<
            java.lang.String,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
        getDependencies() {
      return getDependenciesMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    public java.util.Map<
            java.lang.String,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
        getDependenciesMap() {
      return internalGetDependencies().getMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        getDependenciesOrDefault(
            java.lang.String key,
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
                defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          map = internalGetDependencies().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        getDependenciesOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          map = internalGetDependencies().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ADDITIONALITEMS_FIELD_NUMBER = 33;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool additionalItems_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
     * </code>
     */
    public boolean hasAdditionalItems() {
      return ((bitField0_ & 0x01000000) == 0x01000000);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        getAdditionalItems() {
      return additionalItems_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
              .getDefaultInstance()
          : additionalItems_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder
        getAdditionalItemsOrBuilder() {
      return additionalItems_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
              .getDefaultInstance()
          : additionalItems_;
    }

    public static final int DEFINITIONS_FIELD_NUMBER = 34;

    private static final class DefinitionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String,
                      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
                      newDefaultInstance(
                          io.kubernetes.client.proto.V1beta1Apiextensions
                              .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DefinitionsEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                              .getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        definitions_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        internalGetDefinitions() {
      if (definitions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            DefinitionsDefaultEntryHolder.defaultEntry);
      }
      return definitions_;
    }

    public int getDefinitionsCount() {
      return internalGetDefinitions().getMap().size();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    public boolean containsDefinitions(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetDefinitions().getMap().containsKey(key);
    }
    /** Use {@link #getDefinitionsMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getDefinitions() {
      return getDefinitionsMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    public java.util.Map<
            java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getDefinitionsMap() {
      return internalGetDefinitions().getMap();
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getDefinitionsOrDefault(
        java.lang.String key,
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          map = internalGetDefinitions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>
     * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getDefinitionsOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          map = internalGetDefinitions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int EXTERNALDOCS_FIELD_NUMBER = 35;
    private io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation externalDocs_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
     * </code>
     */
    public boolean hasExternalDocs() {
      return ((bitField0_ & 0x02000000) == 0x02000000);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation getExternalDocs() {
      return externalDocs_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
              .getDefaultInstance()
          : externalDocs_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder
        getExternalDocsOrBuilder() {
      return externalDocs_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
              .getDefaultInstance()
          : externalDocs_;
    }

    public static final int EXAMPLE_FIELD_NUMBER = 36;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSON example_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
     * </code>
     */
    public boolean hasExample() {
      return ((bitField0_ & 0x04000000) == 0x04000000);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getExample() {
      return example_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
          : example_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getExampleOrBuilder() {
      return example_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
          : example_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, schema_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, ref_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, description_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, type_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, format_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, title_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, getDefault());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeDouble(9, maximum_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, exclusiveMaximum_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeDouble(11, minimum_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(12, exclusiveMinimum_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeInt64(13, maxLength_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt64(14, minLength_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, pattern_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeInt64(16, maxItems_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeInt64(17, minItems_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeBool(18, uniqueItems_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeDouble(19, multipleOf_);
      }
      for (int i = 0; i < enum_.size(); i++) {
        output.writeMessage(20, enum_.get(i));
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeInt64(21, maxProperties_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeInt64(22, minProperties_);
      }
      for (int i = 0; i < required_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, required_.getRaw(i));
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(24, getItems());
      }
      for (int i = 0; i < allOf_.size(); i++) {
        output.writeMessage(25, allOf_.get(i));
      }
      for (int i = 0; i < oneOf_.size(); i++) {
        output.writeMessage(26, oneOf_.get(i));
      }
      for (int i = 0; i < anyOf_.size(); i++) {
        output.writeMessage(27, anyOf_.get(i));
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(28, getNot());
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetProperties(), PropertiesDefaultEntryHolder.defaultEntry, 29);
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(30, getAdditionalProperties());
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output,
          internalGetPatternProperties(),
          PatternPropertiesDefaultEntryHolder.defaultEntry,
          31);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetDependencies(), DependenciesDefaultEntryHolder.defaultEntry, 32);
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        output.writeMessage(33, getAdditionalItems());
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetDefinitions(), DefinitionsDefaultEntryHolder.defaultEntry, 34);
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        output.writeMessage(35, getExternalDocs());
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        output.writeMessage(36, getExample());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, schema_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, ref_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, description_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, type_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, format_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, title_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getDefault());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeDoubleSize(9, maximum_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, exclusiveMaximum_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeDoubleSize(11, minimum_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(12, exclusiveMinimum_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(13, maxLength_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(14, minLength_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, pattern_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(16, maxItems_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(17, minItems_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(18, uniqueItems_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream.computeDoubleSize(19, multipleOf_);
      }
      for (int i = 0; i < enum_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(20, enum_.get(i));
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(21, maxProperties_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(22, minProperties_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < required_.size(); i++) {
          dataSize += computeStringSizeNoTag(required_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getRequiredList().size();
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(24, getItems());
      }
      for (int i = 0; i < allOf_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(25, allOf_.get(i));
      }
      for (int i = 0; i < oneOf_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(26, oneOf_.get(i));
      }
      for (int i = 0; i < anyOf_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, anyOf_.get(i));
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(28, getNot());
      }
      for (java.util.Map.Entry<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          entry : internalGetProperties().getMap().entrySet()) {
        com.google.protobuf.MapEntry<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            properties__ =
                PropertiesDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(29, properties__);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(30, getAdditionalProperties());
      }
      for (java.util.Map.Entry<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          entry : internalGetPatternProperties().getMap().entrySet()) {
        com.google.protobuf.MapEntry<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            patternProperties__ =
                PatternPropertiesDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(31, patternProperties__);
      }
      for (java.util.Map.Entry<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          entry : internalGetDependencies().getMap().entrySet()) {
        com.google.protobuf.MapEntry<
                java.lang.String,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
            dependencies__ =
                DependenciesDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(32, dependencies__);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(33, getAdditionalItems());
      }
      for (java.util.Map.Entry<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          entry : internalGetDefinitions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            definitions__ =
                DefinitionsDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(34, definitions__);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(35, getExternalDocs());
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(36, getExample());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps) obj;

      boolean result = true;
      result = result && (hasId() == other.hasId());
      if (hasId()) {
        result = result && getId().equals(other.getId());
      }
      result = result && (hasSchema() == other.hasSchema());
      if (hasSchema()) {
        result = result && getSchema().equals(other.getSchema());
      }
      result = result && (hasRef() == other.hasRef());
      if (hasRef()) {
        result = result && getRef().equals(other.getRef());
      }
      result = result && (hasDescription() == other.hasDescription());
      if (hasDescription()) {
        result = result && getDescription().equals(other.getDescription());
      }
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasFormat() == other.hasFormat());
      if (hasFormat()) {
        result = result && getFormat().equals(other.getFormat());
      }
      result = result && (hasTitle() == other.hasTitle());
      if (hasTitle()) {
        result = result && getTitle().equals(other.getTitle());
      }
      result = result && (hasDefault() == other.hasDefault());
      if (hasDefault()) {
        result = result && getDefault().equals(other.getDefault());
      }
      result = result && (hasMaximum() == other.hasMaximum());
      if (hasMaximum()) {
        result =
            result
                && (java.lang.Double.doubleToLongBits(getMaximum())
                    == java.lang.Double.doubleToLongBits(other.getMaximum()));
      }
      result = result && (hasExclusiveMaximum() == other.hasExclusiveMaximum());
      if (hasExclusiveMaximum()) {
        result = result && (getExclusiveMaximum() == other.getExclusiveMaximum());
      }
      result = result && (hasMinimum() == other.hasMinimum());
      if (hasMinimum()) {
        result =
            result
                && (java.lang.Double.doubleToLongBits(getMinimum())
                    == java.lang.Double.doubleToLongBits(other.getMinimum()));
      }
      result = result && (hasExclusiveMinimum() == other.hasExclusiveMinimum());
      if (hasExclusiveMinimum()) {
        result = result && (getExclusiveMinimum() == other.getExclusiveMinimum());
      }
      result = result && (hasMaxLength() == other.hasMaxLength());
      if (hasMaxLength()) {
        result = result && (getMaxLength() == other.getMaxLength());
      }
      result = result && (hasMinLength() == other.hasMinLength());
      if (hasMinLength()) {
        result = result && (getMinLength() == other.getMinLength());
      }
      result = result && (hasPattern() == other.hasPattern());
      if (hasPattern()) {
        result = result && getPattern().equals(other.getPattern());
      }
      result = result && (hasMaxItems() == other.hasMaxItems());
      if (hasMaxItems()) {
        result = result && (getMaxItems() == other.getMaxItems());
      }
      result = result && (hasMinItems() == other.hasMinItems());
      if (hasMinItems()) {
        result = result && (getMinItems() == other.getMinItems());
      }
      result = result && (hasUniqueItems() == other.hasUniqueItems());
      if (hasUniqueItems()) {
        result = result && (getUniqueItems() == other.getUniqueItems());
      }
      result = result && (hasMultipleOf() == other.hasMultipleOf());
      if (hasMultipleOf()) {
        result =
            result
                && (java.lang.Double.doubleToLongBits(getMultipleOf())
                    == java.lang.Double.doubleToLongBits(other.getMultipleOf()));
      }
      result = result && getEnumList().equals(other.getEnumList());
      result = result && (hasMaxProperties() == other.hasMaxProperties());
      if (hasMaxProperties()) {
        result = result && (getMaxProperties() == other.getMaxProperties());
      }
      result = result && (hasMinProperties() == other.hasMinProperties());
      if (hasMinProperties()) {
        result = result && (getMinProperties() == other.getMinProperties());
      }
      result = result && getRequiredList().equals(other.getRequiredList());
      result = result && (hasItems() == other.hasItems());
      if (hasItems()) {
        result = result && getItems().equals(other.getItems());
      }
      result = result && getAllOfList().equals(other.getAllOfList());
      result = result && getOneOfList().equals(other.getOneOfList());
      result = result && getAnyOfList().equals(other.getAnyOfList());
      result = result && (hasNot() == other.hasNot());
      if (hasNot()) {
        result = result && getNot().equals(other.getNot());
      }
      result = result && internalGetProperties().equals(other.internalGetProperties());
      result = result && (hasAdditionalProperties() == other.hasAdditionalProperties());
      if (hasAdditionalProperties()) {
        result = result && getAdditionalProperties().equals(other.getAdditionalProperties());
      }
      result =
          result && internalGetPatternProperties().equals(other.internalGetPatternProperties());
      result = result && internalGetDependencies().equals(other.internalGetDependencies());
      result = result && (hasAdditionalItems() == other.hasAdditionalItems());
      if (hasAdditionalItems()) {
        result = result && getAdditionalItems().equals(other.getAdditionalItems());
      }
      result = result && internalGetDefinitions().equals(other.internalGetDefinitions());
      result = result && (hasExternalDocs() == other.hasExternalDocs());
      if (hasExternalDocs()) {
        result = result && getExternalDocs().equals(other.getExternalDocs());
      }
      result = result && (hasExample() == other.hasExample());
      if (hasExample()) {
        result = result && getExample().equals(other.getExample());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId().hashCode();
      }
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      if (hasRef()) {
        hash = (37 * hash) + REF_FIELD_NUMBER;
        hash = (53 * hash) + getRef().hashCode();
      }
      if (hasDescription()) {
        hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getDescription().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasFormat()) {
        hash = (37 * hash) + FORMAT_FIELD_NUMBER;
        hash = (53 * hash) + getFormat().hashCode();
      }
      if (hasTitle()) {
        hash = (37 * hash) + TITLE_FIELD_NUMBER;
        hash = (53 * hash) + getTitle().hashCode();
      }
      if (hasDefault()) {
        hash = (37 * hash) + DEFAULT_FIELD_NUMBER;
        hash = (53 * hash) + getDefault().hashCode();
      }
      if (hasMaximum()) {
        hash = (37 * hash) + MAXIMUM_FIELD_NUMBER;
        hash =
            (53 * hash)
                + com.google.protobuf.Internal.hashLong(
                    java.lang.Double.doubleToLongBits(getMaximum()));
      }
      if (hasExclusiveMaximum()) {
        hash = (37 * hash) + EXCLUSIVEMAXIMUM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getExclusiveMaximum());
      }
      if (hasMinimum()) {
        hash = (37 * hash) + MINIMUM_FIELD_NUMBER;
        hash =
            (53 * hash)
                + com.google.protobuf.Internal.hashLong(
                    java.lang.Double.doubleToLongBits(getMinimum()));
      }
      if (hasExclusiveMinimum()) {
        hash = (37 * hash) + EXCLUSIVEMINIMUM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getExclusiveMinimum());
      }
      if (hasMaxLength()) {
        hash = (37 * hash) + MAXLENGTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxLength());
      }
      if (hasMinLength()) {
        hash = (37 * hash) + MINLENGTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinLength());
      }
      if (hasPattern()) {
        hash = (37 * hash) + PATTERN_FIELD_NUMBER;
        hash = (53 * hash) + getPattern().hashCode();
      }
      if (hasMaxItems()) {
        hash = (37 * hash) + MAXITEMS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxItems());
      }
      if (hasMinItems()) {
        hash = (37 * hash) + MINITEMS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinItems());
      }
      if (hasUniqueItems()) {
        hash = (37 * hash) + UNIQUEITEMS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUniqueItems());
      }
      if (hasMultipleOf()) {
        hash = (37 * hash) + MULTIPLEOF_FIELD_NUMBER;
        hash =
            (53 * hash)
                + com.google.protobuf.Internal.hashLong(
                    java.lang.Double.doubleToLongBits(getMultipleOf()));
      }
      if (getEnumCount() > 0) {
        hash = (37 * hash) + ENUM_FIELD_NUMBER;
        hash = (53 * hash) + getEnumList().hashCode();
      }
      if (hasMaxProperties()) {
        hash = (37 * hash) + MAXPROPERTIES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxProperties());
      }
      if (hasMinProperties()) {
        hash = (37 * hash) + MINPROPERTIES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinProperties());
      }
      if (getRequiredCount() > 0) {
        hash = (37 * hash) + REQUIRED_FIELD_NUMBER;
        hash = (53 * hash) + getRequiredList().hashCode();
      }
      if (hasItems()) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItems().hashCode();
      }
      if (getAllOfCount() > 0) {
        hash = (37 * hash) + ALLOF_FIELD_NUMBER;
        hash = (53 * hash) + getAllOfList().hashCode();
      }
      if (getOneOfCount() > 0) {
        hash = (37 * hash) + ONEOF_FIELD_NUMBER;
        hash = (53 * hash) + getOneOfList().hashCode();
      }
      if (getAnyOfCount() > 0) {
        hash = (37 * hash) + ANYOF_FIELD_NUMBER;
        hash = (53 * hash) + getAnyOfList().hashCode();
      }
      if (hasNot()) {
        hash = (37 * hash) + NOT_FIELD_NUMBER;
        hash = (53 * hash) + getNot().hashCode();
      }
      if (!internalGetProperties().getMap().isEmpty()) {
        hash = (37 * hash) + PROPERTIES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetProperties().hashCode();
      }
      if (hasAdditionalProperties()) {
        hash = (37 * hash) + ADDITIONALPROPERTIES_FIELD_NUMBER;
        hash = (53 * hash) + getAdditionalProperties().hashCode();
      }
      if (!internalGetPatternProperties().getMap().isEmpty()) {
        hash = (37 * hash) + PATTERNPROPERTIES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetPatternProperties().hashCode();
      }
      if (!internalGetDependencies().getMap().isEmpty()) {
        hash = (37 * hash) + DEPENDENCIES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetDependencies().hashCode();
      }
      if (hasAdditionalItems()) {
        hash = (37 * hash) + ADDITIONALITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getAdditionalItems().hashCode();
      }
      if (!internalGetDefinitions().getMap().isEmpty()) {
        hash = (37 * hash) + DEFINITIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetDefinitions().hashCode();
      }
      if (hasExternalDocs()) {
        hash = (37 * hash) + EXTERNALDOCS_FIELD_NUMBER;
        hash = (53 * hash) + getExternalDocs().hashCode();
      }
      if (hasExample()) {
        hash = (37 * hash) + EXAMPLE_FIELD_NUMBER;
        hash = (53 * hash) + getExample().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps)
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 29:
            return internalGetProperties();
          case 31:
            return internalGetPatternProperties();
          case 32:
            return internalGetDependencies();
          case 34:
            return internalGetDefinitions();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 29:
            return internalGetMutableProperties();
          case 31:
            return internalGetMutablePatternProperties();
          case 32:
            return internalGetMutableDependencies();
          case 34:
            return internalGetMutableDefinitions();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getDefaultFieldBuilder();
          getEnumFieldBuilder();
          getItemsFieldBuilder();
          getAllOfFieldBuilder();
          getOneOfFieldBuilder();
          getAnyOfFieldBuilder();
          getNotFieldBuilder();
          getAdditionalPropertiesFieldBuilder();
          getAdditionalItemsFieldBuilder();
          getExternalDocsFieldBuilder();
          getExampleFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        schema_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        ref_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        description_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        format_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        title_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        if (defaultBuilder_ == null) {
          default_ = null;
        } else {
          defaultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        maximum_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000100);
        exclusiveMaximum_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        minimum_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000400);
        exclusiveMinimum_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        maxLength_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        minLength_ = 0L;
        bitField0_ = (bitField0_ & ~0x00002000);
        pattern_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        maxItems_ = 0L;
        bitField0_ = (bitField0_ & ~0x00008000);
        minItems_ = 0L;
        bitField0_ = (bitField0_ & ~0x00010000);
        uniqueItems_ = false;
        bitField0_ = (bitField0_ & ~0x00020000);
        multipleOf_ = 0D;
        bitField0_ = (bitField0_ & ~0x00040000);
        if (enumBuilder_ == null) {
          enum_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00080000);
        } else {
          enumBuilder_.clear();
        }
        maxProperties_ = 0L;
        bitField0_ = (bitField0_ & ~0x00100000);
        minProperties_ = 0L;
        bitField0_ = (bitField0_ & ~0x00200000);
        required_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00400000);
        if (itemsBuilder_ == null) {
          items_ = null;
        } else {
          itemsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00800000);
        if (allOfBuilder_ == null) {
          allOf_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x01000000);
        } else {
          allOfBuilder_.clear();
        }
        if (oneOfBuilder_ == null) {
          oneOf_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x02000000);
        } else {
          oneOfBuilder_.clear();
        }
        if (anyOfBuilder_ == null) {
          anyOf_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x04000000);
        } else {
          anyOfBuilder_.clear();
        }
        if (notBuilder_ == null) {
          not_ = null;
        } else {
          notBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x08000000);
        internalGetMutableProperties().clear();
        if (additionalPropertiesBuilder_ == null) {
          additionalProperties_ = null;
        } else {
          additionalPropertiesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x20000000);
        internalGetMutablePatternProperties().clear();
        internalGetMutableDependencies().clear();
        if (additionalItemsBuilder_ == null) {
          additionalItems_ = null;
        } else {
          additionalItemsBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000001);
        internalGetMutableDefinitions().clear();
        if (externalDocsBuilder_ == null) {
          externalDocs_ = null;
        } else {
          externalDocsBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000004);
        if (exampleBuilder_ == null) {
          example_ = null;
        } else {
          exampleBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps(this);
        int from_bitField0_ = bitField0_;
        int from_bitField1_ = bitField1_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.schema_ = schema_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.ref_ = ref_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.description_ = description_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.format_ = format_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.title_ = title_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (defaultBuilder_ == null) {
          result.default_ = default_;
        } else {
          result.default_ = defaultBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.maximum_ = maximum_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.exclusiveMaximum_ = exclusiveMaximum_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.minimum_ = minimum_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.exclusiveMinimum_ = exclusiveMinimum_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.maxLength_ = maxLength_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.minLength_ = minLength_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.pattern_ = pattern_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.maxItems_ = maxItems_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.minItems_ = minItems_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.uniqueItems_ = uniqueItems_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.multipleOf_ = multipleOf_;
        if (enumBuilder_ == null) {
          if (((bitField0_ & 0x00080000) == 0x00080000)) {
            enum_ = java.util.Collections.unmodifiableList(enum_);
            bitField0_ = (bitField0_ & ~0x00080000);
          }
          result.enum_ = enum_;
        } else {
          result.enum_ = enumBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.maxProperties_ = maxProperties_;
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.minProperties_ = minProperties_;
        if (((bitField0_ & 0x00400000) == 0x00400000)) {
          required_ = required_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00400000);
        }
        result.required_ = required_;
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00200000;
        }
        if (itemsBuilder_ == null) {
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        if (allOfBuilder_ == null) {
          if (((bitField0_ & 0x01000000) == 0x01000000)) {
            allOf_ = java.util.Collections.unmodifiableList(allOf_);
            bitField0_ = (bitField0_ & ~0x01000000);
          }
          result.allOf_ = allOf_;
        } else {
          result.allOf_ = allOfBuilder_.build();
        }
        if (oneOfBuilder_ == null) {
          if (((bitField0_ & 0x02000000) == 0x02000000)) {
            oneOf_ = java.util.Collections.unmodifiableList(oneOf_);
            bitField0_ = (bitField0_ & ~0x02000000);
          }
          result.oneOf_ = oneOf_;
        } else {
          result.oneOf_ = oneOfBuilder_.build();
        }
        if (anyOfBuilder_ == null) {
          if (((bitField0_ & 0x04000000) == 0x04000000)) {
            anyOf_ = java.util.Collections.unmodifiableList(anyOf_);
            bitField0_ = (bitField0_ & ~0x04000000);
          }
          result.anyOf_ = anyOf_;
        } else {
          result.anyOf_ = anyOfBuilder_.build();
        }
        if (((from_bitField0_ & 0x08000000) == 0x08000000)) {
          to_bitField0_ |= 0x00400000;
        }
        if (notBuilder_ == null) {
          result.not_ = not_;
        } else {
          result.not_ = notBuilder_.build();
        }
        result.properties_ = internalGetProperties();
        result.properties_.makeImmutable();
        if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
          to_bitField0_ |= 0x00800000;
        }
        if (additionalPropertiesBuilder_ == null) {
          result.additionalProperties_ = additionalProperties_;
        } else {
          result.additionalProperties_ = additionalPropertiesBuilder_.build();
        }
        result.patternProperties_ = internalGetPatternProperties();
        result.patternProperties_.makeImmutable();
        result.dependencies_ = internalGetDependencies();
        result.dependencies_.makeImmutable();
        if (((from_bitField1_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x01000000;
        }
        if (additionalItemsBuilder_ == null) {
          result.additionalItems_ = additionalItems_;
        } else {
          result.additionalItems_ = additionalItemsBuilder_.build();
        }
        result.definitions_ = internalGetDefinitions();
        result.definitions_.makeImmutable();
        if (((from_bitField1_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x02000000;
        }
        if (externalDocsBuilder_ == null) {
          result.externalDocs_ = externalDocs_;
        } else {
          result.externalDocs_ = externalDocsBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x04000000;
        }
        if (exampleBuilder_ == null) {
          result.example_ = example_;
        } else {
          result.example_ = exampleBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps) {
          return mergeFrom((io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance())
          return this;
        if (other.hasId()) {
          bitField0_ |= 0x00000001;
          id_ = other.id_;
          onChanged();
        }
        if (other.hasSchema()) {
          bitField0_ |= 0x00000002;
          schema_ = other.schema_;
          onChanged();
        }
        if (other.hasRef()) {
          bitField0_ |= 0x00000004;
          ref_ = other.ref_;
          onChanged();
        }
        if (other.hasDescription()) {
          bitField0_ |= 0x00000008;
          description_ = other.description_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000010;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasFormat()) {
          bitField0_ |= 0x00000020;
          format_ = other.format_;
          onChanged();
        }
        if (other.hasTitle()) {
          bitField0_ |= 0x00000040;
          title_ = other.title_;
          onChanged();
        }
        if (other.hasDefault()) {
          mergeDefault(other.getDefault());
        }
        if (other.hasMaximum()) {
          setMaximum(other.getMaximum());
        }
        if (other.hasExclusiveMaximum()) {
          setExclusiveMaximum(other.getExclusiveMaximum());
        }
        if (other.hasMinimum()) {
          setMinimum(other.getMinimum());
        }
        if (other.hasExclusiveMinimum()) {
          setExclusiveMinimum(other.getExclusiveMinimum());
        }
        if (other.hasMaxLength()) {
          setMaxLength(other.getMaxLength());
        }
        if (other.hasMinLength()) {
          setMinLength(other.getMinLength());
        }
        if (other.hasPattern()) {
          bitField0_ |= 0x00004000;
          pattern_ = other.pattern_;
          onChanged();
        }
        if (other.hasMaxItems()) {
          setMaxItems(other.getMaxItems());
        }
        if (other.hasMinItems()) {
          setMinItems(other.getMinItems());
        }
        if (other.hasUniqueItems()) {
          setUniqueItems(other.getUniqueItems());
        }
        if (other.hasMultipleOf()) {
          setMultipleOf(other.getMultipleOf());
        }
        if (enumBuilder_ == null) {
          if (!other.enum_.isEmpty()) {
            if (enum_.isEmpty()) {
              enum_ = other.enum_;
              bitField0_ = (bitField0_ & ~0x00080000);
            } else {
              ensureEnumIsMutable();
              enum_.addAll(other.enum_);
            }
            onChanged();
          }
        } else {
          if (!other.enum_.isEmpty()) {
            if (enumBuilder_.isEmpty()) {
              enumBuilder_.dispose();
              enumBuilder_ = null;
              enum_ = other.enum_;
              bitField0_ = (bitField0_ & ~0x00080000);
              enumBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getEnumFieldBuilder()
                      : null;
            } else {
              enumBuilder_.addAllMessages(other.enum_);
            }
          }
        }
        if (other.hasMaxProperties()) {
          setMaxProperties(other.getMaxProperties());
        }
        if (other.hasMinProperties()) {
          setMinProperties(other.getMinProperties());
        }
        if (!other.required_.isEmpty()) {
          if (required_.isEmpty()) {
            required_ = other.required_;
            bitField0_ = (bitField0_ & ~0x00400000);
          } else {
            ensureRequiredIsMutable();
            required_.addAll(other.required_);
          }
          onChanged();
        }
        if (other.hasItems()) {
          mergeItems(other.getItems());
        }
        if (allOfBuilder_ == null) {
          if (!other.allOf_.isEmpty()) {
            if (allOf_.isEmpty()) {
              allOf_ = other.allOf_;
              bitField0_ = (bitField0_ & ~0x01000000);
            } else {
              ensureAllOfIsMutable();
              allOf_.addAll(other.allOf_);
            }
            onChanged();
          }
        } else {
          if (!other.allOf_.isEmpty()) {
            if (allOfBuilder_.isEmpty()) {
              allOfBuilder_.dispose();
              allOfBuilder_ = null;
              allOf_ = other.allOf_;
              bitField0_ = (bitField0_ & ~0x01000000);
              allOfBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getAllOfFieldBuilder()
                      : null;
            } else {
              allOfBuilder_.addAllMessages(other.allOf_);
            }
          }
        }
        if (oneOfBuilder_ == null) {
          if (!other.oneOf_.isEmpty()) {
            if (oneOf_.isEmpty()) {
              oneOf_ = other.oneOf_;
              bitField0_ = (bitField0_ & ~0x02000000);
            } else {
              ensureOneOfIsMutable();
              oneOf_.addAll(other.oneOf_);
            }
            onChanged();
          }
        } else {
          if (!other.oneOf_.isEmpty()) {
            if (oneOfBuilder_.isEmpty()) {
              oneOfBuilder_.dispose();
              oneOfBuilder_ = null;
              oneOf_ = other.oneOf_;
              bitField0_ = (bitField0_ & ~0x02000000);
              oneOfBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getOneOfFieldBuilder()
                      : null;
            } else {
              oneOfBuilder_.addAllMessages(other.oneOf_);
            }
          }
        }
        if (anyOfBuilder_ == null) {
          if (!other.anyOf_.isEmpty()) {
            if (anyOf_.isEmpty()) {
              anyOf_ = other.anyOf_;
              bitField0_ = (bitField0_ & ~0x04000000);
            } else {
              ensureAnyOfIsMutable();
              anyOf_.addAll(other.anyOf_);
            }
            onChanged();
          }
        } else {
          if (!other.anyOf_.isEmpty()) {
            if (anyOfBuilder_.isEmpty()) {
              anyOfBuilder_.dispose();
              anyOfBuilder_ = null;
              anyOf_ = other.anyOf_;
              bitField0_ = (bitField0_ & ~0x04000000);
              anyOfBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getAnyOfFieldBuilder()
                      : null;
            } else {
              anyOfBuilder_.addAllMessages(other.anyOf_);
            }
          }
        }
        if (other.hasNot()) {
          mergeNot(other.getNot());
        }
        internalGetMutableProperties().mergeFrom(other.internalGetProperties());
        if (other.hasAdditionalProperties()) {
          mergeAdditionalProperties(other.getAdditionalProperties());
        }
        internalGetMutablePatternProperties().mergeFrom(other.internalGetPatternProperties());
        internalGetMutableDependencies().mergeFrom(other.internalGetDependencies());
        if (other.hasAdditionalItems()) {
          mergeAdditionalItems(other.getAdditionalItems());
        }
        internalGetMutableDefinitions().mergeFrom(other.internalGetDefinitions());
        if (other.hasExternalDocs()) {
          mergeExternalDocs(other.getExternalDocs());
        }
        if (other.hasExample()) {
          mergeExample(other.getExample());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;
      private int bitField1_;

      private java.lang.Object id_ = "";
      /** <code>optional string id = 1;</code> */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /** <code>optional string id = 1;</code> */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            id_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string id = 1;</code> */
      public com.google.protobuf.ByteString getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string id = 1;</code> */
      public Builder setId(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string id = 1;</code> */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /** <code>optional string id = 1;</code> */
      public Builder setIdBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object schema_ = "";
      /** <code>optional string schema = 2;</code> */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /** <code>optional string schema = 2;</code> */
      public java.lang.String getSchema() {
        java.lang.Object ref = schema_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            schema_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string schema = 2;</code> */
      public com.google.protobuf.ByteString getSchemaBytes() {
        java.lang.Object ref = schema_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          schema_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string schema = 2;</code> */
      public Builder setSchema(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        schema_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string schema = 2;</code> */
      public Builder clearSchema() {
        bitField0_ = (bitField0_ & ~0x00000002);
        schema_ = getDefaultInstance().getSchema();
        onChanged();
        return this;
      }
      /** <code>optional string schema = 2;</code> */
      public Builder setSchemaBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        schema_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object ref_ = "";
      /** <code>optional string ref = 3;</code> */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /** <code>optional string ref = 3;</code> */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ref_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string ref = 3;</code> */
      public com.google.protobuf.ByteString getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string ref = 3;</code> */
      public Builder setRef(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        ref_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string ref = 3;</code> */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /** <code>optional string ref = 3;</code> */
      public Builder setRefBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        ref_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /** <code>optional string description = 4;</code> */
      public boolean hasDescription() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /** <code>optional string description = 4;</code> */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            description_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string description = 4;</code> */
      public com.google.protobuf.ByteString getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string description = 4;</code> */
      public Builder setDescription(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        description_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string description = 4;</code> */
      public Builder clearDescription() {
        bitField0_ = (bitField0_ & ~0x00000008);
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /** <code>optional string description = 4;</code> */
      public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        description_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /** <code>optional string type = 5;</code> */
      public boolean hasType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /** <code>optional string type = 5;</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 = 5;</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 = 5;</code> */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        type_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string type = 5;</code> */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /** <code>optional string type = 5;</code> */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object format_ = "";
      /** <code>optional string format = 6;</code> */
      public boolean hasFormat() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /** <code>optional string format = 6;</code> */
      public java.lang.String getFormat() {
        java.lang.Object ref = format_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            format_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string format = 6;</code> */
      public com.google.protobuf.ByteString getFormatBytes() {
        java.lang.Object ref = format_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          format_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string format = 6;</code> */
      public Builder setFormat(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        format_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string format = 6;</code> */
      public Builder clearFormat() {
        bitField0_ = (bitField0_ & ~0x00000020);
        format_ = getDefaultInstance().getFormat();
        onChanged();
        return this;
      }
      /** <code>optional string format = 6;</code> */
      public Builder setFormatBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        format_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object title_ = "";
      /** <code>optional string title = 7;</code> */
      public boolean hasTitle() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /** <code>optional string title = 7;</code> */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            title_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string title = 7;</code> */
      public com.google.protobuf.ByteString getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string title = 7;</code> */
      public Builder setTitle(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        title_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string title = 7;</code> */
      public Builder clearTitle() {
        bitField0_ = (bitField0_ & ~0x00000040);
        title_ = getDefaultInstance().getTitle();
        onChanged();
        return this;
      }
      /** <code>optional string title = 7;</code> */
      public Builder setTitleBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        title_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSON default_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          defaultBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public boolean hasDefault() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getDefault() {
        if (defaultBuilder_ == null) {
          return default_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
              : default_;
        } else {
          return defaultBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public Builder setDefault(io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (defaultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          default_ = value;
          onChanged();
        } else {
          defaultBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public Builder setDefault(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder builderForValue) {
        if (defaultBuilder_ == null) {
          default_ = builderForValue.build();
          onChanged();
        } else {
          defaultBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public Builder mergeDefault(io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (defaultBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)
              && default_ != null
              && default_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()) {
            default_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSON
                    .newBuilder(default_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            default_ = value;
          }
          onChanged();
        } else {
          defaultBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public Builder clearDefault() {
        if (defaultBuilder_ == null) {
          default_ = null;
          onChanged();
        } else {
          defaultBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder getDefaultBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getDefaultFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getDefaultOrBuilder() {
        if (defaultBuilder_ != null) {
          return defaultBuilder_.getMessageOrBuilder();
        } else {
          return default_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
              : default_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON default = 8;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          getDefaultFieldBuilder() {
        if (defaultBuilder_ == null) {
          defaultBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>(
                  getDefault(), getParentForChildren(), isClean());
          default_ = null;
        }
        return defaultBuilder_;
      }

      private double maximum_;
      /** <code>optional double maximum = 9;</code> */
      public boolean hasMaximum() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /** <code>optional double maximum = 9;</code> */
      public double getMaximum() {
        return maximum_;
      }
      /** <code>optional double maximum = 9;</code> */
      public Builder setMaximum(double value) {
        bitField0_ |= 0x00000100;
        maximum_ = value;
        onChanged();
        return this;
      }
      /** <code>optional double maximum = 9;</code> */
      public Builder clearMaximum() {
        bitField0_ = (bitField0_ & ~0x00000100);
        maximum_ = 0D;
        onChanged();
        return this;
      }

      private boolean exclusiveMaximum_;
      /** <code>optional bool exclusiveMaximum = 10;</code> */
      public boolean hasExclusiveMaximum() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /** <code>optional bool exclusiveMaximum = 10;</code> */
      public boolean getExclusiveMaximum() {
        return exclusiveMaximum_;
      }
      /** <code>optional bool exclusiveMaximum = 10;</code> */
      public Builder setExclusiveMaximum(boolean value) {
        bitField0_ |= 0x00000200;
        exclusiveMaximum_ = value;
        onChanged();
        return this;
      }
      /** <code>optional bool exclusiveMaximum = 10;</code> */
      public Builder clearExclusiveMaximum() {
        bitField0_ = (bitField0_ & ~0x00000200);
        exclusiveMaximum_ = false;
        onChanged();
        return this;
      }

      private double minimum_;
      /** <code>optional double minimum = 11;</code> */
      public boolean hasMinimum() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /** <code>optional double minimum = 11;</code> */
      public double getMinimum() {
        return minimum_;
      }
      /** <code>optional double minimum = 11;</code> */
      public Builder setMinimum(double value) {
        bitField0_ |= 0x00000400;
        minimum_ = value;
        onChanged();
        return this;
      }
      /** <code>optional double minimum = 11;</code> */
      public Builder clearMinimum() {
        bitField0_ = (bitField0_ & ~0x00000400);
        minimum_ = 0D;
        onChanged();
        return this;
      }

      private boolean exclusiveMinimum_;
      /** <code>optional bool exclusiveMinimum = 12;</code> */
      public boolean hasExclusiveMinimum() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /** <code>optional bool exclusiveMinimum = 12;</code> */
      public boolean getExclusiveMinimum() {
        return exclusiveMinimum_;
      }
      /** <code>optional bool exclusiveMinimum = 12;</code> */
      public Builder setExclusiveMinimum(boolean value) {
        bitField0_ |= 0x00000800;
        exclusiveMinimum_ = value;
        onChanged();
        return this;
      }
      /** <code>optional bool exclusiveMinimum = 12;</code> */
      public Builder clearExclusiveMinimum() {
        bitField0_ = (bitField0_ & ~0x00000800);
        exclusiveMinimum_ = false;
        onChanged();
        return this;
      }

      private long maxLength_;
      /** <code>optional int64 maxLength = 13;</code> */
      public boolean hasMaxLength() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /** <code>optional int64 maxLength = 13;</code> */
      public long getMaxLength() {
        return maxLength_;
      }
      /** <code>optional int64 maxLength = 13;</code> */
      public Builder setMaxLength(long value) {
        bitField0_ |= 0x00001000;
        maxLength_ = value;
        onChanged();
        return this;
      }
      /** <code>optional int64 maxLength = 13;</code> */
      public Builder clearMaxLength() {
        bitField0_ = (bitField0_ & ~0x00001000);
        maxLength_ = 0L;
        onChanged();
        return this;
      }

      private long minLength_;
      /** <code>optional int64 minLength = 14;</code> */
      public boolean hasMinLength() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /** <code>optional int64 minLength = 14;</code> */
      public long getMinLength() {
        return minLength_;
      }
      /** <code>optional int64 minLength = 14;</code> */
      public Builder setMinLength(long value) {
        bitField0_ |= 0x00002000;
        minLength_ = value;
        onChanged();
        return this;
      }
      /** <code>optional int64 minLength = 14;</code> */
      public Builder clearMinLength() {
        bitField0_ = (bitField0_ & ~0x00002000);
        minLength_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object pattern_ = "";
      /** <code>optional string pattern = 15;</code> */
      public boolean hasPattern() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /** <code>optional string pattern = 15;</code> */
      public java.lang.String getPattern() {
        java.lang.Object ref = pattern_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            pattern_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string pattern = 15;</code> */
      public com.google.protobuf.ByteString getPatternBytes() {
        java.lang.Object ref = pattern_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          pattern_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string pattern = 15;</code> */
      public Builder setPattern(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        pattern_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string pattern = 15;</code> */
      public Builder clearPattern() {
        bitField0_ = (bitField0_ & ~0x00004000);
        pattern_ = getDefaultInstance().getPattern();
        onChanged();
        return this;
      }
      /** <code>optional string pattern = 15;</code> */
      public Builder setPatternBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        pattern_ = value;
        onChanged();
        return this;
      }

      private long maxItems_;
      /** <code>optional int64 maxItems = 16;</code> */
      public boolean hasMaxItems() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /** <code>optional int64 maxItems = 16;</code> */
      public long getMaxItems() {
        return maxItems_;
      }
      /** <code>optional int64 maxItems = 16;</code> */
      public Builder setMaxItems(long value) {
        bitField0_ |= 0x00008000;
        maxItems_ = value;
        onChanged();
        return this;
      }
      /** <code>optional int64 maxItems = 16;</code> */
      public Builder clearMaxItems() {
        bitField0_ = (bitField0_ & ~0x00008000);
        maxItems_ = 0L;
        onChanged();
        return this;
      }

      private long minItems_;
      /** <code>optional int64 minItems = 17;</code> */
      public boolean hasMinItems() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /** <code>optional int64 minItems = 17;</code> */
      public long getMinItems() {
        return minItems_;
      }
      /** <code>optional int64 minItems = 17;</code> */
      public Builder setMinItems(long value) {
        bitField0_ |= 0x00010000;
        minItems_ = value;
        onChanged();
        return this;
      }
      /** <code>optional int64 minItems = 17;</code> */
      public Builder clearMinItems() {
        bitField0_ = (bitField0_ & ~0x00010000);
        minItems_ = 0L;
        onChanged();
        return this;
      }

      private boolean uniqueItems_;
      /** <code>optional bool uniqueItems = 18;</code> */
      public boolean hasUniqueItems() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /** <code>optional bool uniqueItems = 18;</code> */
      public boolean getUniqueItems() {
        return uniqueItems_;
      }
      /** <code>optional bool uniqueItems = 18;</code> */
      public Builder setUniqueItems(boolean value) {
        bitField0_ |= 0x00020000;
        uniqueItems_ = value;
        onChanged();
        return this;
      }
      /** <code>optional bool uniqueItems = 18;</code> */
      public Builder clearUniqueItems() {
        bitField0_ = (bitField0_ & ~0x00020000);
        uniqueItems_ = false;
        onChanged();
        return this;
      }

      private double multipleOf_;
      /** <code>optional double multipleOf = 19;</code> */
      public boolean hasMultipleOf() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /** <code>optional double multipleOf = 19;</code> */
      public double getMultipleOf() {
        return multipleOf_;
      }
      /** <code>optional double multipleOf = 19;</code> */
      public Builder setMultipleOf(double value) {
        bitField0_ |= 0x00040000;
        multipleOf_ = value;
        onChanged();
        return this;
      }
      /** <code>optional double multipleOf = 19;</code> */
      public Builder clearMultipleOf() {
        bitField0_ = (bitField0_ & ~0x00040000);
        multipleOf_ = 0D;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSON> enum_ =
          java.util.Collections.emptyList();

      private void ensureEnumIsMutable() {
        if (!((bitField0_ & 0x00080000) == 0x00080000)) {
          enum_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1beta1Apiextensions.JSON>(enum_);
          bitField0_ |= 0x00080000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          enumBuilder_;

      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSON> getEnumList() {
        if (enumBuilder_ == null) {
          return java.util.Collections.unmodifiableList(enum_);
        } else {
          return enumBuilder_.getMessageList();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public int getEnumCount() {
        if (enumBuilder_ == null) {
          return enum_.size();
        } else {
          return enumBuilder_.getCount();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getEnum(int index) {
        if (enumBuilder_ == null) {
          return enum_.get(index);
        } else {
          return enumBuilder_.getMessage(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder setEnum(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (enumBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnumIsMutable();
          enum_.set(index, value);
          onChanged();
        } else {
          enumBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder setEnum(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder builderForValue) {
        if (enumBuilder_ == null) {
          ensureEnumIsMutable();
          enum_.set(index, builderForValue.build());
          onChanged();
        } else {
          enumBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder addEnum(io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (enumBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnumIsMutable();
          enum_.add(value);
          onChanged();
        } else {
          enumBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder addEnum(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (enumBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnumIsMutable();
          enum_.add(index, value);
          onChanged();
        } else {
          enumBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder addEnum(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder builderForValue) {
        if (enumBuilder_ == null) {
          ensureEnumIsMutable();
          enum_.add(builderForValue.build());
          onChanged();
        } else {
          enumBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder addEnum(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder builderForValue) {
        if (enumBuilder_ == null) {
          ensureEnumIsMutable();
          enum_.add(index, builderForValue.build());
          onChanged();
        } else {
          enumBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder addAllEnum(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSON>
              values) {
        if (enumBuilder_ == null) {
          ensureEnumIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, enum_);
          onChanged();
        } else {
          enumBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder clearEnum() {
        if (enumBuilder_ == null) {
          enum_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00080000);
          onChanged();
        } else {
          enumBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public Builder removeEnum(int index) {
        if (enumBuilder_ == null) {
          ensureEnumIsMutable();
          enum_.remove(index);
          onChanged();
        } else {
          enumBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder getEnumBuilder(
          int index) {
        return getEnumFieldBuilder().getBuilder(index);
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getEnumOrBuilder(
          int index) {
        if (enumBuilder_ == null) {
          return enum_.get(index);
        } else {
          return enumBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          getEnumOrBuilderList() {
        if (enumBuilder_ != null) {
          return enumBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(enum_);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder addEnumBuilder() {
        return getEnumFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder addEnumBuilder(
          int index) {
        return getEnumFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON enum = 20;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder>
          getEnumBuilderList() {
        return getEnumFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          getEnumFieldBuilder() {
        if (enumBuilder_ == null) {
          enumBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>(
                  enum_,
                  ((bitField0_ & 0x00080000) == 0x00080000),
                  getParentForChildren(),
                  isClean());
          enum_ = null;
        }
        return enumBuilder_;
      }

      private long maxProperties_;
      /** <code>optional int64 maxProperties = 21;</code> */
      public boolean hasMaxProperties() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /** <code>optional int64 maxProperties = 21;</code> */
      public long getMaxProperties() {
        return maxProperties_;
      }
      /** <code>optional int64 maxProperties = 21;</code> */
      public Builder setMaxProperties(long value) {
        bitField0_ |= 0x00100000;
        maxProperties_ = value;
        onChanged();
        return this;
      }
      /** <code>optional int64 maxProperties = 21;</code> */
      public Builder clearMaxProperties() {
        bitField0_ = (bitField0_ & ~0x00100000);
        maxProperties_ = 0L;
        onChanged();
        return this;
      }

      private long minProperties_;
      /** <code>optional int64 minProperties = 22;</code> */
      public boolean hasMinProperties() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /** <code>optional int64 minProperties = 22;</code> */
      public long getMinProperties() {
        return minProperties_;
      }
      /** <code>optional int64 minProperties = 22;</code> */
      public Builder setMinProperties(long value) {
        bitField0_ |= 0x00200000;
        minProperties_ = value;
        onChanged();
        return this;
      }
      /** <code>optional int64 minProperties = 22;</code> */
      public Builder clearMinProperties() {
        bitField0_ = (bitField0_ & ~0x00200000);
        minProperties_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList required_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureRequiredIsMutable() {
        if (!((bitField0_ & 0x00400000) == 0x00400000)) {
          required_ = new com.google.protobuf.LazyStringArrayList(required_);
          bitField0_ |= 0x00400000;
        }
      }
      /** <code>repeated string required = 23;</code> */
      public com.google.protobuf.ProtocolStringList getRequiredList() {
        return required_.getUnmodifiableView();
      }
      /** <code>repeated string required = 23;</code> */
      public int getRequiredCount() {
        return required_.size();
      }
      /** <code>repeated string required = 23;</code> */
      public java.lang.String getRequired(int index) {
        return required_.get(index);
      }
      /** <code>repeated string required = 23;</code> */
      public com.google.protobuf.ByteString getRequiredBytes(int index) {
        return required_.getByteString(index);
      }
      /** <code>repeated string required = 23;</code> */
      public Builder setRequired(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRequiredIsMutable();
        required_.set(index, value);
        onChanged();
        return this;
      }
      /** <code>repeated string required = 23;</code> */
      public Builder addRequired(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRequiredIsMutable();
        required_.add(value);
        onChanged();
        return this;
      }
      /** <code>repeated string required = 23;</code> */
      public Builder addAllRequired(java.lang.Iterable<java.lang.String> values) {
        ensureRequiredIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, required_);
        onChanged();
        return this;
      }
      /** <code>repeated string required = 23;</code> */
      public Builder clearRequired() {
        required_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00400000);
        onChanged();
        return this;
      }
      /** <code>repeated string required = 23;</code> */
      public Builder addRequiredBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRequiredIsMutable();
        required_.add(value);
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray items_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder>
          itemsBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public boolean hasItems() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray getItems() {
        if (itemsBuilder_ == null) {
          return items_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
                  .getDefaultInstance()
              : items_;
        } else {
          return itemsBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public Builder setItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          items_ = value;
          onChanged();
        } else {
          itemsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public Builder setItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder
              builderForValue) {
        if (itemsBuilder_ == null) {
          items_ = builderForValue.build();
          onChanged();
        } else {
          itemsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public Builder mergeItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray value) {
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00800000) == 0x00800000)
              && items_ != null
              && items_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
                      .getDefaultInstance()) {
            items_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.newBuilder(
                        items_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            items_ = value;
          }
          onChanged();
        } else {
          itemsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = null;
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder
          getItemsBuilder() {
        bitField0_ |= 0x00800000;
        onChanged();
        return getItemsFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder
          getItemsOrBuilder() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilder();
        } else {
          return items_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
                  .getDefaultInstance()
              : items_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray items = 24;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder>(
                  getItems(), getParentForChildren(), isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          allOf_ = java.util.Collections.emptyList();

      private void ensureAllOfIsMutable() {
        if (!((bitField0_ & 0x01000000) == 0x01000000)) {
          allOf_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>(allOf_);
          bitField0_ |= 0x01000000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          allOfBuilder_;

      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getAllOfList() {
        if (allOfBuilder_ == null) {
          return java.util.Collections.unmodifiableList(allOf_);
        } else {
          return allOfBuilder_.getMessageList();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public int getAllOfCount() {
        if (allOfBuilder_ == null) {
          return allOf_.size();
        } else {
          return allOfBuilder_.getCount();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getAllOf(int index) {
        if (allOfBuilder_ == null) {
          return allOf_.get(index);
        } else {
          return allOfBuilder_.getMessage(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder setAllOf(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (allOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAllOfIsMutable();
          allOf_.set(index, value);
          onChanged();
        } else {
          allOfBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder setAllOf(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (allOfBuilder_ == null) {
          ensureAllOfIsMutable();
          allOf_.set(index, builderForValue.build());
          onChanged();
        } else {
          allOfBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder addAllOf(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (allOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAllOfIsMutable();
          allOf_.add(value);
          onChanged();
        } else {
          allOfBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder addAllOf(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (allOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAllOfIsMutable();
          allOf_.add(index, value);
          onChanged();
        } else {
          allOfBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder addAllOf(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (allOfBuilder_ == null) {
          ensureAllOfIsMutable();
          allOf_.add(builderForValue.build());
          onChanged();
        } else {
          allOfBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder addAllOf(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (allOfBuilder_ == null) {
          ensureAllOfIsMutable();
          allOf_.add(index, builderForValue.build());
          onChanged();
        } else {
          allOfBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder addAllAllOf(
          java.lang.Iterable<
                  ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        if (allOfBuilder_ == null) {
          ensureAllOfIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, allOf_);
          onChanged();
        } else {
          allOfBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder clearAllOf() {
        if (allOfBuilder_ == null) {
          allOf_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x01000000);
          onChanged();
        } else {
          allOfBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public Builder removeAllOf(int index) {
        if (allOfBuilder_ == null) {
          ensureAllOfIsMutable();
          allOf_.remove(index);
          onChanged();
        } else {
          allOfBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getAllOfBuilder(int index) {
        return getAllOfFieldBuilder().getBuilder(index);
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getAllOfOrBuilder(int index) {
        if (allOfBuilder_ == null) {
          return allOf_.get(index);
        } else {
          return allOfBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getAllOfOrBuilderList() {
        if (allOfBuilder_ != null) {
          return allOfBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(allOf_);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addAllOfBuilder() {
        return getAllOfFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addAllOfBuilder(int index) {
        return getAllOfFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps allOf = 25;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder>
          getAllOfBuilderList() {
        return getAllOfFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getAllOfFieldBuilder() {
        if (allOfBuilder_ == null) {
          allOfBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  allOf_,
                  ((bitField0_ & 0x01000000) == 0x01000000),
                  getParentForChildren(),
                  isClean());
          allOf_ = null;
        }
        return allOfBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          oneOf_ = java.util.Collections.emptyList();

      private void ensureOneOfIsMutable() {
        if (!((bitField0_ & 0x02000000) == 0x02000000)) {
          oneOf_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>(oneOf_);
          bitField0_ |= 0x02000000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          oneOfBuilder_;

      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getOneOfList() {
        if (oneOfBuilder_ == null) {
          return java.util.Collections.unmodifiableList(oneOf_);
        } else {
          return oneOfBuilder_.getMessageList();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public int getOneOfCount() {
        if (oneOfBuilder_ == null) {
          return oneOf_.size();
        } else {
          return oneOfBuilder_.getCount();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getOneOf(int index) {
        if (oneOfBuilder_ == null) {
          return oneOf_.get(index);
        } else {
          return oneOfBuilder_.getMessage(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder setOneOf(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (oneOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOneOfIsMutable();
          oneOf_.set(index, value);
          onChanged();
        } else {
          oneOfBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder setOneOf(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (oneOfBuilder_ == null) {
          ensureOneOfIsMutable();
          oneOf_.set(index, builderForValue.build());
          onChanged();
        } else {
          oneOfBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder addOneOf(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (oneOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOneOfIsMutable();
          oneOf_.add(value);
          onChanged();
        } else {
          oneOfBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder addOneOf(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (oneOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOneOfIsMutable();
          oneOf_.add(index, value);
          onChanged();
        } else {
          oneOfBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder addOneOf(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (oneOfBuilder_ == null) {
          ensureOneOfIsMutable();
          oneOf_.add(builderForValue.build());
          onChanged();
        } else {
          oneOfBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder addOneOf(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (oneOfBuilder_ == null) {
          ensureOneOfIsMutable();
          oneOf_.add(index, builderForValue.build());
          onChanged();
        } else {
          oneOfBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder addAllOneOf(
          java.lang.Iterable<
                  ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        if (oneOfBuilder_ == null) {
          ensureOneOfIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, oneOf_);
          onChanged();
        } else {
          oneOfBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder clearOneOf() {
        if (oneOfBuilder_ == null) {
          oneOf_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x02000000);
          onChanged();
        } else {
          oneOfBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public Builder removeOneOf(int index) {
        if (oneOfBuilder_ == null) {
          ensureOneOfIsMutable();
          oneOf_.remove(index);
          onChanged();
        } else {
          oneOfBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getOneOfBuilder(int index) {
        return getOneOfFieldBuilder().getBuilder(index);
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getOneOfOrBuilder(int index) {
        if (oneOfBuilder_ == null) {
          return oneOf_.get(index);
        } else {
          return oneOfBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getOneOfOrBuilderList() {
        if (oneOfBuilder_ != null) {
          return oneOfBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(oneOf_);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addOneOfBuilder() {
        return getOneOfFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addOneOfBuilder(int index) {
        return getOneOfFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps oneOf = 26;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder>
          getOneOfBuilderList() {
        return getOneOfFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getOneOfFieldBuilder() {
        if (oneOfBuilder_ == null) {
          oneOfBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  oneOf_,
                  ((bitField0_ & 0x02000000) == 0x02000000),
                  getParentForChildren(),
                  isClean());
          oneOf_ = null;
        }
        return oneOfBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          anyOf_ = java.util.Collections.emptyList();

      private void ensureAnyOfIsMutable() {
        if (!((bitField0_ & 0x04000000) == 0x04000000)) {
          anyOf_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>(anyOf_);
          bitField0_ |= 0x04000000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          anyOfBuilder_;

      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getAnyOfList() {
        if (anyOfBuilder_ == null) {
          return java.util.Collections.unmodifiableList(anyOf_);
        } else {
          return anyOfBuilder_.getMessageList();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public int getAnyOfCount() {
        if (anyOfBuilder_ == null) {
          return anyOf_.size();
        } else {
          return anyOfBuilder_.getCount();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getAnyOf(int index) {
        if (anyOfBuilder_ == null) {
          return anyOf_.get(index);
        } else {
          return anyOfBuilder_.getMessage(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder setAnyOf(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (anyOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAnyOfIsMutable();
          anyOf_.set(index, value);
          onChanged();
        } else {
          anyOfBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder setAnyOf(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (anyOfBuilder_ == null) {
          ensureAnyOfIsMutable();
          anyOf_.set(index, builderForValue.build());
          onChanged();
        } else {
          anyOfBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder addAnyOf(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (anyOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAnyOfIsMutable();
          anyOf_.add(value);
          onChanged();
        } else {
          anyOfBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder addAnyOf(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (anyOfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAnyOfIsMutable();
          anyOf_.add(index, value);
          onChanged();
        } else {
          anyOfBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder addAnyOf(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (anyOfBuilder_ == null) {
          ensureAnyOfIsMutable();
          anyOf_.add(builderForValue.build());
          onChanged();
        } else {
          anyOfBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder addAnyOf(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (anyOfBuilder_ == null) {
          ensureAnyOfIsMutable();
          anyOf_.add(index, builderForValue.build());
          onChanged();
        } else {
          anyOfBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder addAllAnyOf(
          java.lang.Iterable<
                  ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        if (anyOfBuilder_ == null) {
          ensureAnyOfIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, anyOf_);
          onChanged();
        } else {
          anyOfBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder clearAnyOf() {
        if (anyOfBuilder_ == null) {
          anyOf_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x04000000);
          onChanged();
        } else {
          anyOfBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public Builder removeAnyOf(int index) {
        if (anyOfBuilder_ == null) {
          ensureAnyOfIsMutable();
          anyOf_.remove(index);
          onChanged();
        } else {
          anyOfBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getAnyOfBuilder(int index) {
        return getAnyOfFieldBuilder().getBuilder(index);
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getAnyOfOrBuilder(int index) {
        if (anyOfBuilder_ == null) {
          return anyOf_.get(index);
        } else {
          return anyOfBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getAnyOfOrBuilderList() {
        if (anyOfBuilder_ != null) {
          return anyOfBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(anyOf_);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addAnyOfBuilder() {
        return getAnyOfFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addAnyOfBuilder(int index) {
        return getAnyOfFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps anyOf = 27;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder>
          getAnyOfBuilderList() {
        return getAnyOfFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getAnyOfFieldBuilder() {
        if (anyOfBuilder_ == null) {
          anyOfBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  anyOf_,
                  ((bitField0_ & 0x04000000) == 0x04000000),
                  getParentForChildren(),
                  isClean());
          anyOf_ = null;
        }
        return anyOfBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps not_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          notBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public boolean hasNot() {
        return ((bitField0_ & 0x08000000) == 0x08000000);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getNot() {
        if (notBuilder_ == null) {
          return not_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : not_;
        } else {
          return notBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public Builder setNot(io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (notBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          not_ = value;
          onChanged();
        } else {
          notBuilder_.setMessage(value);
        }
        bitField0_ |= 0x08000000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public Builder setNot(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (notBuilder_ == null) {
          not_ = builderForValue.build();
          onChanged();
        } else {
          notBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x08000000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public Builder mergeNot(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (notBuilder_ == null) {
          if (((bitField0_ & 0x08000000) == 0x08000000)
              && not_ != null
              && not_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                      .getDefaultInstance()) {
            not_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.newBuilder(not_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            not_ = value;
          }
          onChanged();
        } else {
          notBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x08000000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public Builder clearNot() {
        if (notBuilder_ == null) {
          not_ = null;
          onChanged();
        } else {
          notBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x08000000);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getNotBuilder() {
        bitField0_ |= 0x08000000;
        onChanged();
        return getNotFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getNotOrBuilder() {
        if (notBuilder_ != null) {
          return notBuilder_.getMessageOrBuilder();
        } else {
          return not_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : not_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps not = 28;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getNotFieldBuilder() {
        if (notBuilder_ == null) {
          notBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  getNot(), getParentForChildren(), isClean());
          not_ = null;
        }
        return notBuilder_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          properties_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          internalGetProperties() {
        if (properties_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              PropertiesDefaultEntryHolder.defaultEntry);
        }
        return properties_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          internalGetMutableProperties() {
        onChanged();
        ;
        if (properties_ == null) {
          properties_ =
              com.google.protobuf.MapField.newMapField(PropertiesDefaultEntryHolder.defaultEntry);
        }
        if (!properties_.isMutable()) {
          properties_ = properties_.copy();
        }
        return properties_;
      }

      public int getPropertiesCount() {
        return internalGetProperties().getMap().size();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public boolean containsProperties(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetProperties().getMap().containsKey(key);
      }
      /** Use {@link #getPropertiesMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getProperties() {
        return getPropertiesMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getPropertiesMap() {
        return internalGetProperties().getMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPropertiesOrDefault(
          java.lang.String key,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            map = internalGetProperties().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getPropertiesOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            map = internalGetProperties().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearProperties() {
        internalGetMutableProperties().getMutableMap().clear();
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public Builder removeProperties(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableProperties().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getMutableProperties() {
        return internalGetMutableProperties().getMutableMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public Builder putProperties(
          java.lang.String key,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableProperties().getMutableMap().put(key, value);
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; properties = 29;
       * </code>
       */
      public Builder putAllProperties(
          java.util.Map<
                  java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        internalGetMutableProperties().getMutableMap().putAll(values);
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
          additionalProperties_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder>
          additionalPropertiesBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public boolean hasAdditionalProperties() {
        return ((bitField0_ & 0x20000000) == 0x20000000);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
          getAdditionalProperties() {
        if (additionalPropertiesBuilder_ == null) {
          return additionalProperties_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                  .getDefaultInstance()
              : additionalProperties_;
        } else {
          return additionalPropertiesBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public Builder setAdditionalProperties(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool value) {
        if (additionalPropertiesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          additionalProperties_ = value;
          onChanged();
        } else {
          additionalPropertiesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x20000000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public Builder setAdditionalProperties(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
              builderForValue) {
        if (additionalPropertiesBuilder_ == null) {
          additionalProperties_ = builderForValue.build();
          onChanged();
        } else {
          additionalPropertiesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x20000000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public Builder mergeAdditionalProperties(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool value) {
        if (additionalPropertiesBuilder_ == null) {
          if (((bitField0_ & 0x20000000) == 0x20000000)
              && additionalProperties_ != null
              && additionalProperties_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                      .getDefaultInstance()) {
            additionalProperties_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.newBuilder(
                        additionalProperties_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            additionalProperties_ = value;
          }
          onChanged();
        } else {
          additionalPropertiesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x20000000;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public Builder clearAdditionalProperties() {
        if (additionalPropertiesBuilder_ == null) {
          additionalProperties_ = null;
          onChanged();
        } else {
          additionalPropertiesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x20000000);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
          getAdditionalPropertiesBuilder() {
        bitField0_ |= 0x20000000;
        onChanged();
        return getAdditionalPropertiesFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder
          getAdditionalPropertiesOrBuilder() {
        if (additionalPropertiesBuilder_ != null) {
          return additionalPropertiesBuilder_.getMessageOrBuilder();
        } else {
          return additionalProperties_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                  .getDefaultInstance()
              : additionalProperties_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalProperties = 30;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder>
          getAdditionalPropertiesFieldBuilder() {
        if (additionalPropertiesBuilder_ == null) {
          additionalPropertiesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder>(
                  getAdditionalProperties(), getParentForChildren(), isClean());
          additionalProperties_ = null;
        }
        return additionalPropertiesBuilder_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          patternProperties_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          internalGetPatternProperties() {
        if (patternProperties_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              PatternPropertiesDefaultEntryHolder.defaultEntry);
        }
        return patternProperties_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          internalGetMutablePatternProperties() {
        onChanged();
        ;
        if (patternProperties_ == null) {
          patternProperties_ =
              com.google.protobuf.MapField.newMapField(
                  PatternPropertiesDefaultEntryHolder.defaultEntry);
        }
        if (!patternProperties_.isMutable()) {
          patternProperties_ = patternProperties_.copy();
        }
        return patternProperties_;
      }

      public int getPatternPropertiesCount() {
        return internalGetPatternProperties().getMap().size();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public boolean containsPatternProperties(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetPatternProperties().getMap().containsKey(key);
      }
      /** Use {@link #getPatternPropertiesMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getPatternProperties() {
        return getPatternPropertiesMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getPatternPropertiesMap() {
        return internalGetPatternProperties().getMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
          getPatternPropertiesOrDefault(
              java.lang.String key,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            map = internalGetPatternProperties().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
          getPatternPropertiesOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            map = internalGetPatternProperties().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearPatternProperties() {
        internalGetMutablePatternProperties().getMutableMap().clear();
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public Builder removePatternProperties(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutablePatternProperties().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getMutablePatternProperties() {
        return internalGetMutablePatternProperties().getMutableMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public Builder putPatternProperties(
          java.lang.String key,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutablePatternProperties().getMutableMap().put(key, value);
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; patternProperties = 31;
       * </code>
       */
      public Builder putAllPatternProperties(
          java.util.Map<
                  java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        internalGetMutablePatternProperties().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          dependencies_;

      private com.google.protobuf.MapField<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          internalGetDependencies() {
        if (dependencies_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              DependenciesDefaultEntryHolder.defaultEntry);
        }
        return dependencies_;
      }

      private com.google.protobuf.MapField<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          internalGetMutableDependencies() {
        onChanged();
        ;
        if (dependencies_ == null) {
          dependencies_ =
              com.google.protobuf.MapField.newMapField(DependenciesDefaultEntryHolder.defaultEntry);
        }
        if (!dependencies_.isMutable()) {
          dependencies_ = dependencies_.copy();
        }
        return dependencies_;
      }

      public int getDependenciesCount() {
        return internalGetDependencies().getMap().size();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public boolean containsDependencies(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetDependencies().getMap().containsKey(key);
      }
      /** Use {@link #getDependenciesMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          getDependencies() {
        return getDependenciesMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public java.util.Map<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          getDependenciesMap() {
        return internalGetDependencies().getMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
          getDependenciesOrDefault(
              java.lang.String key,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
                  defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
            map = internalGetDependencies().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
          getDependenciesOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
            map = internalGetDependencies().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearDependencies() {
        internalGetMutableDependencies().getMutableMap().clear();
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public Builder removeDependencies(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDependencies().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
          getMutableDependencies() {
        return internalGetMutableDependencies().getMutableMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public Builder putDependencies(
          java.lang.String key,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDependencies().getMutableMap().put(key, value);
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray&gt; dependencies = 32;
       * </code>
       */
      public Builder putAllDependencies(
          java.util.Map<
                  java.lang.String,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray>
              values) {
        internalGetMutableDependencies().getMutableMap().putAll(values);
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
          additionalItems_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder>
          additionalItemsBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public boolean hasAdditionalItems() {
        return ((bitField1_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
          getAdditionalItems() {
        if (additionalItemsBuilder_ == null) {
          return additionalItems_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                  .getDefaultInstance()
              : additionalItems_;
        } else {
          return additionalItemsBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public Builder setAdditionalItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool value) {
        if (additionalItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          additionalItems_ = value;
          onChanged();
        } else {
          additionalItemsBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public Builder setAdditionalItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
              builderForValue) {
        if (additionalItemsBuilder_ == null) {
          additionalItems_ = builderForValue.build();
          onChanged();
        } else {
          additionalItemsBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public Builder mergeAdditionalItems(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool value) {
        if (additionalItemsBuilder_ == null) {
          if (((bitField1_ & 0x00000001) == 0x00000001)
              && additionalItems_ != null
              && additionalItems_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                      .getDefaultInstance()) {
            additionalItems_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.newBuilder(
                        additionalItems_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            additionalItems_ = value;
          }
          onChanged();
        } else {
          additionalItemsBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public Builder clearAdditionalItems() {
        if (additionalItemsBuilder_ == null) {
          additionalItems_ = null;
          onChanged();
        } else {
          additionalItemsBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000001);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
          getAdditionalItemsBuilder() {
        bitField1_ |= 0x00000001;
        onChanged();
        return getAdditionalItemsFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder
          getAdditionalItemsOrBuilder() {
        if (additionalItemsBuilder_ != null) {
          return additionalItemsBuilder_.getMessageOrBuilder();
        } else {
          return additionalItems_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                  .getDefaultInstance()
              : additionalItems_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool additionalItems = 33;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder>
          getAdditionalItemsFieldBuilder() {
        if (additionalItemsBuilder_ == null) {
          additionalItemsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder>(
                  getAdditionalItems(), getParentForChildren(), isClean());
          additionalItems_ = null;
        }
        return additionalItemsBuilder_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          definitions_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          internalGetDefinitions() {
        if (definitions_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              DefinitionsDefaultEntryHolder.defaultEntry);
        }
        return definitions_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          internalGetMutableDefinitions() {
        onChanged();
        ;
        if (definitions_ == null) {
          definitions_ =
              com.google.protobuf.MapField.newMapField(DefinitionsDefaultEntryHolder.defaultEntry);
        }
        if (!definitions_.isMutable()) {
          definitions_ = definitions_.copy();
        }
        return definitions_;
      }

      public int getDefinitionsCount() {
        return internalGetDefinitions().getMap().size();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public boolean containsDefinitions(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetDefinitions().getMap().containsKey(key);
      }
      /** Use {@link #getDefinitionsMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getDefinitions() {
        return getDefinitionsMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getDefinitionsMap() {
        return internalGetDefinitions().getMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
          getDefinitionsOrDefault(
              java.lang.String key,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            map = internalGetDefinitions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getDefinitionsOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<
                java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
            map = internalGetDefinitions().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearDefinitions() {
        internalGetMutableDefinitions().getMutableMap().clear();
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public Builder removeDefinitions(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDefinitions().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<
              java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getMutableDefinitions() {
        return internalGetMutableDefinitions().getMutableMap();
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public Builder putDefinitions(
          java.lang.String key,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDefinitions().getMutableMap().put(key, value);
        return this;
      }
      /**
       * <code>
       * map&lt;string, .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps&gt; definitions = 34;
       * </code>
       */
      public Builder putAllDefinitions(
          java.util.Map<
                  java.lang.String, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        internalGetMutableDefinitions().getMutableMap().putAll(values);
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation externalDocs_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation,
              io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder>
          externalDocsBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public boolean hasExternalDocs() {
        return ((bitField1_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
          getExternalDocs() {
        if (externalDocsBuilder_ == null) {
          return externalDocs_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
                  .getDefaultInstance()
              : externalDocs_;
        } else {
          return externalDocsBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public Builder setExternalDocs(
          io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation value) {
        if (externalDocsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          externalDocs_ = value;
          onChanged();
        } else {
          externalDocsBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000004;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public Builder setExternalDocs(
          io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.Builder
              builderForValue) {
        if (externalDocsBuilder_ == null) {
          externalDocs_ = builderForValue.build();
          onChanged();
        } else {
          externalDocsBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000004;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public Builder mergeExternalDocs(
          io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation value) {
        if (externalDocsBuilder_ == null) {
          if (((bitField1_ & 0x00000004) == 0x00000004)
              && externalDocs_ != null
              && externalDocs_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
                      .getDefaultInstance()) {
            externalDocs_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.newBuilder(
                        externalDocs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            externalDocs_ = value;
          }
          onChanged();
        } else {
          externalDocsBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000004;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public Builder clearExternalDocs() {
        if (externalDocsBuilder_ == null) {
          externalDocs_ = null;
          onChanged();
        } else {
          externalDocsBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000004);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.Builder
          getExternalDocsBuilder() {
        bitField1_ |= 0x00000004;
        onChanged();
        return getExternalDocsFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder
          getExternalDocsOrBuilder() {
        if (externalDocsBuilder_ != null) {
          return externalDocsBuilder_.getMessageOrBuilder();
        } else {
          return externalDocs_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation
                  .getDefaultInstance()
              : externalDocs_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation externalDocs = 35;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation,
              io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder>
          getExternalDocsFieldBuilder() {
        if (externalDocsBuilder_ == null) {
          externalDocsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentation.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ExternalDocumentationOrBuilder>(
                  getExternalDocs(), getParentForChildren(), isClean());
          externalDocs_ = null;
        }
        return externalDocsBuilder_;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSON example_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          exampleBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public boolean hasExample() {
        return ((bitField1_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON getExample() {
        if (exampleBuilder_ == null) {
          return example_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
              : example_;
        } else {
          return exampleBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public Builder setExample(io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (exampleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          example_ = value;
          onChanged();
        } else {
          exampleBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000008;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public Builder setExample(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder builderForValue) {
        if (exampleBuilder_ == null) {
          example_ = builderForValue.build();
          onChanged();
        } else {
          exampleBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000008;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public Builder mergeExample(io.kubernetes.client.proto.V1beta1Apiextensions.JSON value) {
        if (exampleBuilder_ == null) {
          if (((bitField1_ & 0x00000008) == 0x00000008)
              && example_ != null
              && example_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()) {
            example_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSON
                    .newBuilder(example_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            example_ = value;
          }
          onChanged();
        } else {
          exampleBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000008;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public Builder clearExample() {
        if (exampleBuilder_ == null) {
          example_ = null;
          onChanged();
        } else {
          exampleBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000008);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder getExampleBuilder() {
        bitField1_ |= 0x00000008;
        onChanged();
        return getExampleFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder getExampleOrBuilder() {
        if (exampleBuilder_ != null) {
          return exampleBuilder_.getMessageOrBuilder();
        } else {
          return example_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSON.getDefaultInstance()
              : example_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSON example = 36;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>
          getExampleFieldBuilder() {
        if (exampleBuilder_ == null) {
          exampleBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSON,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSON.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONOrBuilder>(
                  getExample(), getParentForChildren(), isClean());
          example_ = null;
        }
        return exampleBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<JSONSchemaProps> PARSER =
        new com.google.protobuf.AbstractParser<JSONSchemaProps>() {
          @java.lang.Override
          public JSONSchemaProps parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new JSONSchemaProps(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<JSONSchemaProps> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JSONSchemaProps> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface JSONSchemaPropsOrArrayOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    boolean hasSchema();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getSchemaOrBuilder();

    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getJSONSchemasList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getJSONSchemas(int index);
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    int getJSONSchemasCount();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getJSONSchemasOrBuilderList();
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getJSONSchemasOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps
   * or an array of JSONSchemaProps. Mainly here for serialization purposes.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray}
   */
  public static final class JSONSchemaPropsOrArray extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray)
      JSONSchemaPropsOrArrayOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use JSONSchemaPropsOrArray.newBuilder() to construct.
    private JSONSchemaPropsOrArray(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private JSONSchemaPropsOrArray() {
      jSONSchemas_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private JSONSchemaPropsOrArray(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = schema_.toBuilder();
                }
                schema_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(schema_);
                  schema_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  jSONSchemas_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>();
                  mutable_bitField0_ |= 0x00000002;
                }
                jSONSchemas_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          jSONSchemas_ = java.util.Collections.unmodifiableList(jSONSchemas_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.class,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder.class);
    }

    private int bitField0_;
    public static final int SCHEMA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps schema_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : schema_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getSchemaOrBuilder() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : schema_;
    }

    public static final int JSONSCHEMAS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        jSONSchemas_;
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
        getJSONSchemasList() {
      return jSONSchemas_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
        getJSONSchemasOrBuilderList() {
      return jSONSchemas_;
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    public int getJSONSchemasCount() {
      return jSONSchemas_.size();
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getJSONSchemas(
        int index) {
      return jSONSchemas_.get(index);
    }
    /**
     * <code>
     * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getJSONSchemasOrBuilder(int index) {
      return jSONSchemas_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getSchema());
      }
      for (int i = 0; i < jSONSchemas_.size(); i++) {
        output.writeMessage(2, jSONSchemas_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSchema());
      }
      for (int i = 0; i < jSONSchemas_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, jSONSchemas_.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.V1beta1Apiextensions.JSONSchemaPropsOrArray)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray) obj;

      boolean result = true;
      result = result && (hasSchema() == other.hasSchema());
      if (hasSchema()) {
        result = result && getSchema().equals(other.getSchema());
      }
      result = result && getJSONSchemasList().equals(other.getJSONSchemasList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      if (getJSONSchemasCount() > 0) {
        hash = (37 * hash) + JSONSCHEMAS_FIELD_NUMBER;
        hash = (53 * hash) + getJSONSchemasList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps
     * or an array of JSONSchemaProps. Mainly here for serialization purposes.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray)
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.Builder
                    .class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
          getJSONSchemasFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (schemaBuilder_ == null) {
          schema_ = null;
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (jSONSchemasBuilder_ == null) {
          jSONSchemas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          jSONSchemasBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
            .getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (schemaBuilder_ == null) {
          result.schema_ = schema_;
        } else {
          result.schema_ = schemaBuilder_.build();
        }
        if (jSONSchemasBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            jSONSchemas_ = java.util.Collections.unmodifiableList(jSONSchemas_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.jSONSchemas_ = jSONSchemas_;
        } else {
          result.jSONSchemas_ = jSONSchemasBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other
            instanceof io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray) {
          return mergeFrom(
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
                .getDefaultInstance()) return this;
        if (other.hasSchema()) {
          mergeSchema(other.getSchema());
        }
        if (jSONSchemasBuilder_ == null) {
          if (!other.jSONSchemas_.isEmpty()) {
            if (jSONSchemas_.isEmpty()) {
              jSONSchemas_ = other.jSONSchemas_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureJSONSchemasIsMutable();
              jSONSchemas_.addAll(other.jSONSchemas_);
            }
            onChanged();
          }
        } else {
          if (!other.jSONSchemas_.isEmpty()) {
            if (jSONSchemasBuilder_.isEmpty()) {
              jSONSchemasBuilder_.dispose();
              jSONSchemasBuilder_ = null;
              jSONSchemas_ = other.jSONSchemas_;
              bitField0_ = (bitField0_ & ~0x00000002);
              jSONSchemasBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getJSONSchemasFieldBuilder()
                      : null;
            } else {
              jSONSchemasBuilder_.addAllMessages(other.jSONSchemas_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps schema_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          schemaBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema() {
        if (schemaBuilder_ == null) {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : schema_;
        } else {
          return schemaBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schema_ = value;
          onChanged();
        } else {
          schemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          schema_ = builderForValue.build();
          onChanged();
        } else {
          schemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder mergeSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && schema_ != null
              && schema_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                      .getDefaultInstance()) {
            schema_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.newBuilder(schema_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            schema_ = value;
          }
          onChanged();
        } else {
          schemaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder clearSchema() {
        if (schemaBuilder_ == null) {
          schema_ = null;
          onChanged();
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getSchemaBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSchemaFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getSchemaOrBuilder() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilder();
        } else {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : schema_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  getSchema(), getParentForChildren(), isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          jSONSchemas_ = java.util.Collections.emptyList();

      private void ensureJSONSchemasIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          jSONSchemas_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>(jSONSchemas_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          jSONSchemasBuilder_;

      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
          getJSONSchemasList() {
        if (jSONSchemasBuilder_ == null) {
          return java.util.Collections.unmodifiableList(jSONSchemas_);
        } else {
          return jSONSchemasBuilder_.getMessageList();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public int getJSONSchemasCount() {
        if (jSONSchemasBuilder_ == null) {
          return jSONSchemas_.size();
        } else {
          return jSONSchemasBuilder_.getCount();
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getJSONSchemas(
          int index) {
        if (jSONSchemasBuilder_ == null) {
          return jSONSchemas_.get(index);
        } else {
          return jSONSchemasBuilder_.getMessage(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder setJSONSchemas(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (jSONSchemasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJSONSchemasIsMutable();
          jSONSchemas_.set(index, value);
          onChanged();
        } else {
          jSONSchemasBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder setJSONSchemas(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (jSONSchemasBuilder_ == null) {
          ensureJSONSchemasIsMutable();
          jSONSchemas_.set(index, builderForValue.build());
          onChanged();
        } else {
          jSONSchemasBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder addJSONSchemas(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (jSONSchemasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJSONSchemasIsMutable();
          jSONSchemas_.add(value);
          onChanged();
        } else {
          jSONSchemasBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder addJSONSchemas(
          int index, io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (jSONSchemasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJSONSchemasIsMutable();
          jSONSchemas_.add(index, value);
          onChanged();
        } else {
          jSONSchemasBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder addJSONSchemas(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (jSONSchemasBuilder_ == null) {
          ensureJSONSchemasIsMutable();
          jSONSchemas_.add(builderForValue.build());
          onChanged();
        } else {
          jSONSchemasBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder addJSONSchemas(
          int index,
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (jSONSchemasBuilder_ == null) {
          ensureJSONSchemasIsMutable();
          jSONSchemas_.add(index, builderForValue.build());
          onChanged();
        } else {
          jSONSchemasBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder addAllJSONSchemas(
          java.lang.Iterable<
                  ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps>
              values) {
        if (jSONSchemasBuilder_ == null) {
          ensureJSONSchemasIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, jSONSchemas_);
          onChanged();
        } else {
          jSONSchemasBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder clearJSONSchemas() {
        if (jSONSchemasBuilder_ == null) {
          jSONSchemas_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          jSONSchemasBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public Builder removeJSONSchemas(int index) {
        if (jSONSchemasBuilder_ == null) {
          ensureJSONSchemasIsMutable();
          jSONSchemas_.remove(index);
          onChanged();
        } else {
          jSONSchemasBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getJSONSchemasBuilder(int index) {
        return getJSONSchemasFieldBuilder().getBuilder(index);
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getJSONSchemasOrBuilder(int index) {
        if (jSONSchemasBuilder_ == null) {
          return jSONSchemas_.get(index);
        } else {
          return jSONSchemasBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getJSONSchemasOrBuilderList() {
        if (jSONSchemasBuilder_ != null) {
          return jSONSchemasBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(jSONSchemas_);
        }
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addJSONSchemasBuilder() {
        return getJSONSchemasFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          addJSONSchemasBuilder(int index) {
        return getJSONSchemasFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                    .getDefaultInstance());
      }
      /**
       * <code>
       * repeated .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps jSONSchemas = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder>
          getJSONSchemasBuilderList() {
        return getJSONSchemasFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getJSONSchemasFieldBuilder() {
        if (jSONSchemasBuilder_ == null) {
          jSONSchemasBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  jSONSchemas_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          jSONSchemas_ = null;
        }
        return jSONSchemasBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<JSONSchemaPropsOrArray> PARSER =
        new com.google.protobuf.AbstractParser<JSONSchemaPropsOrArray>() {
          @java.lang.Override
          public JSONSchemaPropsOrArray parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new JSONSchemaPropsOrArray(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<JSONSchemaPropsOrArray> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JSONSchemaPropsOrArray> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrArray
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface JSONSchemaPropsOrBoolOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional bool allows = 1;</code> */
    boolean hasAllows();
    /** <code>optional bool allows = 1;</code> */
    boolean getAllows();

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
     * </code>
     */
    boolean hasSchema();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getSchemaOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value.
   * Defaults to true for the boolean property.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool}
   */
  public static final class JSONSchemaPropsOrBool extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool)
      JSONSchemaPropsOrBoolOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use JSONSchemaPropsOrBool.newBuilder() to construct.
    private JSONSchemaPropsOrBool(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private JSONSchemaPropsOrBool() {
      allows_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private JSONSchemaPropsOrBool(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                allows_ = input.readBool();
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = schema_.toBuilder();
                }
                schema_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(schema_);
                  schema_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.class,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder.class);
    }

    private int bitField0_;
    public static final int ALLOWS_FIELD_NUMBER = 1;
    private boolean allows_;
    /** <code>optional bool allows = 1;</code> */
    public boolean hasAllows() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional bool allows = 1;</code> */
    public boolean getAllows() {
      return allows_;
    }

    public static final int SCHEMA_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps schema_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
     * </code>
     */
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : schema_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getSchemaOrBuilder() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : schema_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, allows_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSchema());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, allows_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSchema());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool) obj;

      boolean result = true;
      result = result && (hasAllows() == other.hasAllows());
      if (hasAllows()) {
        result = result && (getAllows() == other.getAllows());
      }
      result = result && (hasSchema() == other.hasSchema());
      if (hasSchema()) {
        result = result && getSchema().equals(other.getSchema());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAllows()) {
        hash = (37 * hash) + ALLOWS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllows());
      }
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value.
     * Defaults to true for the boolean property.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool)
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBoolOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.Builder
                    .class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        allows_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (schemaBuilder_ == null) {
          schema_ = null;
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
            .getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.allows_ = allows_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (schemaBuilder_ == null) {
          result.schema_ = schema_;
        } else {
          result.schema_ = schemaBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other
            instanceof io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool) {
          return mergeFrom(
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
                .getDefaultInstance()) return this;
        if (other.hasAllows()) {
          setAllows(other.getAllows());
        }
        if (other.hasSchema()) {
          mergeSchema(other.getSchema());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private boolean allows_;
      /** <code>optional bool allows = 1;</code> */
      public boolean hasAllows() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /** <code>optional bool allows = 1;</code> */
      public boolean getAllows() {
        return allows_;
      }
      /** <code>optional bool allows = 1;</code> */
      public Builder setAllows(boolean value) {
        bitField0_ |= 0x00000001;
        allows_ = value;
        onChanged();
        return this;
      }
      /** <code>optional bool allows = 1;</code> */
      public Builder clearAllows() {
        bitField0_ = (bitField0_ & ~0x00000001);
        allows_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps schema_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          schemaBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema() {
        if (schemaBuilder_ == null) {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : schema_;
        } else {
          return schemaBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schema_ = value;
          onChanged();
        } else {
          schemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          schema_ = builderForValue.build();
          onChanged();
        } else {
          schemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public Builder mergeSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && schema_ != null
              && schema_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                      .getDefaultInstance()) {
            schema_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.newBuilder(schema_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            schema_ = value;
          }
          onChanged();
        } else {
          schemaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public Builder clearSchema() {
        if (schemaBuilder_ == null) {
          schema_ = null;
          onChanged();
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getSchemaBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSchemaFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getSchemaOrBuilder() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilder();
        } else {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : schema_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  getSchema(), getParentForChildren(), isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<JSONSchemaPropsOrBool> PARSER =
        new com.google.protobuf.AbstractParser<JSONSchemaPropsOrBool>() {
          @java.lang.Override
          public JSONSchemaPropsOrBool parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new JSONSchemaPropsOrBool(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<JSONSchemaPropsOrBool> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JSONSchemaPropsOrBool> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBool
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface JSONSchemaPropsOrStringArrayOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    boolean hasSchema();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema();
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder getSchemaOrBuilder();

    /** <code>repeated string property = 2;</code> */
    java.util.List<java.lang.String> getPropertyList();
    /** <code>repeated string property = 2;</code> */
    int getPropertyCount();
    /** <code>repeated string property = 2;</code> */
    java.lang.String getProperty(int index);
    /** <code>repeated string property = 2;</code> */
    com.google.protobuf.ByteString getPropertyBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray}
   */
  public static final class JSONSchemaPropsOrStringArray
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray)
      JSONSchemaPropsOrStringArrayOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use JSONSchemaPropsOrStringArray.newBuilder() to construct.
    private JSONSchemaPropsOrStringArray(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private JSONSchemaPropsOrStringArray() {
      property_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private JSONSchemaPropsOrStringArray(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = schema_.toBuilder();
                }
                schema_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(schema_);
                  schema_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  property_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                property_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          property_ = property_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray.class,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray.Builder
                  .class);
    }

    private int bitField0_;
    public static final int SCHEMA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps schema_;
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : schema_;
    }
    /**
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
        getSchemaOrBuilder() {
      return schema_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
          : schema_;
    }

    public static final int PROPERTY_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList property_;
    /** <code>repeated string property = 2;</code> */
    public com.google.protobuf.ProtocolStringList getPropertyList() {
      return property_;
    }
    /** <code>repeated string property = 2;</code> */
    public int getPropertyCount() {
      return property_.size();
    }
    /** <code>repeated string property = 2;</code> */
    public java.lang.String getProperty(int index) {
      return property_.get(index);
    }
    /** <code>repeated string property = 2;</code> */
    public com.google.protobuf.ByteString getPropertyBytes(int index) {
      return property_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getSchema());
      }
      for (int i = 0; i < property_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, property_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSchema());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < property_.size(); i++) {
          dataSize += computeStringSizeNoTag(property_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPropertyList().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.V1beta1Apiextensions.JSONSchemaPropsOrStringArray)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray) obj;

      boolean result = true;
      result = result && (hasSchema() == other.hasSchema());
      if (hasSchema()) {
        result = result && getSchema().equals(other.getSchema());
      }
      result = result && getPropertyList().equals(other.getPropertyList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      if (getPropertyCount() > 0) {
        hash = (37 * hash) + PROPERTY_FIELD_NUMBER;
        hash = (53 * hash) + getPropertyList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(
            java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray)
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray.Builder
                    .class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSchemaFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (schemaBuilder_ == null) {
          schema_ = null;
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        property_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
            .getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
          buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (schemaBuilder_ == null) {
          result.schema_ = schema_;
        } else {
          result.schema_ = schemaBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          property_ = property_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.property_ = property_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other
            instanceof
            io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray) {
          return mergeFrom(
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
                .getDefaultInstance()) return this;
        if (other.hasSchema()) {
          mergeSchema(other.getSchema());
        }
        if (!other.property_.isEmpty()) {
          if (property_.isEmpty()) {
            property_ = other.property_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePropertyIsMutable();
            property_.addAll(other.property_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray parsedMessage =
            null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps schema_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          schemaBuilder_;
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps getSchema() {
        if (schemaBuilder_ == null) {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : schema_;
        } else {
          return schemaBuilder_.getMessage();
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (schemaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          schema_ = value;
          onChanged();
        } else {
          schemaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder setSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder builderForValue) {
        if (schemaBuilder_ == null) {
          schema_ = builderForValue.build();
          onChanged();
        } else {
          schemaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder mergeSchema(
          io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps value) {
        if (schemaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && schema_ != null
              && schema_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps
                      .getDefaultInstance()) {
            schema_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.newBuilder(schema_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            schema_ = value;
          }
          onChanged();
        } else {
          schemaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public Builder clearSchema() {
        if (schemaBuilder_ == null) {
          schema_ = null;
          onChanged();
        } else {
          schemaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder
          getSchemaBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSchemaFieldBuilder().getBuilder();
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder
          getSchemaOrBuilder() {
        if (schemaBuilder_ != null) {
          return schemaBuilder_.getMessageOrBuilder();
        } else {
          return schema_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.getDefaultInstance()
              : schema_;
        }
      }
      /**
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps schema = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>
          getSchemaFieldBuilder() {
        if (schemaBuilder_ == null) {
          schemaBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaProps.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrBuilder>(
                  getSchema(), getParentForChildren(), isClean());
          schema_ = null;
        }
        return schemaBuilder_;
      }

      private com.google.protobuf.LazyStringList property_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensurePropertyIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          property_ = new com.google.protobuf.LazyStringArrayList(property_);
          bitField0_ |= 0x00000002;
        }
      }
      /** <code>repeated string property = 2;</code> */
      public com.google.protobuf.ProtocolStringList getPropertyList() {
        return property_.getUnmodifiableView();
      }
      /** <code>repeated string property = 2;</code> */
      public int getPropertyCount() {
        return property_.size();
      }
      /** <code>repeated string property = 2;</code> */
      public java.lang.String getProperty(int index) {
        return property_.get(index);
      }
      /** <code>repeated string property = 2;</code> */
      public com.google.protobuf.ByteString getPropertyBytes(int index) {
        return property_.getByteString(index);
      }
      /** <code>repeated string property = 2;</code> */
      public Builder setProperty(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePropertyIsMutable();
        property_.set(index, value);
        onChanged();
        return this;
      }
      /** <code>repeated string property = 2;</code> */
      public Builder addProperty(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePropertyIsMutable();
        property_.add(value);
        onChanged();
        return this;
      }
      /** <code>repeated string property = 2;</code> */
      public Builder addAllProperty(java.lang.Iterable<java.lang.String> values) {
        ensurePropertyIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, property_);
        onChanged();
        return this;
      }
      /** <code>repeated string property = 2;</code> */
      public Builder clearProperty() {
        property_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /** <code>repeated string property = 2;</code> */
      public Builder addPropertyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePropertyIsMutable();
        property_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions
            .JSONSchemaPropsOrStringArray
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE =
          new io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<JSONSchemaPropsOrStringArray> PARSER =
        new com.google.protobuf.AbstractParser<JSONSchemaPropsOrStringArray>() {
          @java.lang.Override
          public JSONSchemaPropsOrStringArray parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new JSONSchemaPropsOrStringArray(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<JSONSchemaPropsOrStringArray> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JSONSchemaPropsOrStringArray> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.JSONSchemaPropsOrStringArray
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceReferenceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * `namespace` is the namespace of the service.
     * Required
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    boolean hasNamespace();
    /**
     *
     *
     * <pre>
     * `namespace` is the namespace of the service.
     * Required
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    java.lang.String getNamespace();
    /**
     *
     *
     * <pre>
     * `namespace` is the namespace of the service.
     * Required
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    com.google.protobuf.ByteString getNamespaceBytes();

    /**
     *
     *
     * <pre>
     * `name` is the name of the service.
     * Required
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * `name` is the name of the service.
     * Required
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * `name` is the name of the service.
     * Required
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * `path` is an optional URL path which will be sent in any request to
     * this service.
     * +optional
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * `path` is an optional URL path which will be sent in any request to
     * this service.
     * +optional
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * `path` is an optional URL path which will be sent in any request to
     * this service.
     * +optional
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    com.google.protobuf.ByteString getPathBytes();
  }
  /**
   *
   *
   * <pre>
   * ServiceReference holds a reference to Service.legacy.k8s.io
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference}
   */
  public static final class ServiceReference extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference)
      ServiceReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceReference.newBuilder() to construct.
    private ServiceReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceReference() {
      namespace_ = "";
      name_ = "";
      path_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceReference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                namespace_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                name_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                path_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.class,
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder.class);
    }

    private int bitField0_;
    public static final int NAMESPACE_FIELD_NUMBER = 1;
    private volatile java.lang.Object namespace_;
    /**
     *
     *
     * <pre>
     * `namespace` is the namespace of the service.
     * Required
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    public boolean hasNamespace() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * `namespace` is the namespace of the service.
     * Required
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    public java.lang.String getNamespace() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          namespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * `namespace` is the namespace of the service.
     * Required
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    public com.google.protobuf.ByteString getNamespaceBytes() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        namespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * `name` is the name of the service.
     * Required
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * `name` is the name of the service.
     * Required
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * `name` is the name of the service.
     * Required
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PATH_FIELD_NUMBER = 3;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * `path` is an optional URL path which will be sent in any request to
     * this service.
     * +optional
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * `path` is an optional URL path which will be sent in any request to
     * this service.
     * +optional
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * `path` is an optional URL path which will be sent in any request to
     * this service.
     * +optional
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, namespace_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, path_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, namespace_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, path_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference) obj;

      boolean result = true;
      result = result && (hasNamespace() == other.hasNamespace());
      if (hasNamespace()) {
        result = result && getNamespace().equals(other.getNamespace());
      }
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasNamespace()) {
        hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getNamespace().hashCode();
      }
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceReference holds a reference to Service.legacy.k8s.io
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference)
        io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        namespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
            .getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.namespace_ = namespace_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference) {
          return mergeFrom(
              (io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
                .getDefaultInstance()) return this;
        if (other.hasNamespace()) {
          bitField0_ |= 0x00000001;
          namespace_ = other.namespace_;
          onChanged();
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000004;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object namespace_ = "";
      /**
       *
       *
       * <pre>
       * `namespace` is the namespace of the service.
       * Required
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * `namespace` is the namespace of the service.
       * Required
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public java.lang.String getNamespace() {
        java.lang.Object ref = namespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            namespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `namespace` is the namespace of the service.
       * Required
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public com.google.protobuf.ByteString getNamespaceBytes() {
        java.lang.Object ref = namespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          namespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `namespace` is the namespace of the service.
       * Required
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public Builder setNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        namespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `namespace` is the namespace of the service.
       * Required
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public Builder clearNamespace() {
        bitField0_ = (bitField0_ & ~0x00000001);
        namespace_ = getDefaultInstance().getNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `namespace` is the namespace of the service.
       * Required
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public Builder setNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        namespace_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * `name` is the name of the service.
       * Required
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * `name` is the name of the service.
       * Required
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `name` is the name of the service.
       * Required
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `name` is the name of the service.
       * Required
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `name` is the name of the service.
       * Required
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `name` is the name of the service.
       * Required
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * `path` is an optional URL path which will be sent in any request to
       * this service.
       * +optional
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * `path` is an optional URL path which will be sent in any request to
       * this service.
       * +optional
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `path` is an optional URL path which will be sent in any request to
       * this service.
       * +optional
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `path` is an optional URL path which will be sent in any request to
       * this service.
       * +optional
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `path` is an optional URL path which will be sent in any request to
       * this service.
       * +optional
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `path` is an optional URL path which will be sent in any request to
       * this service.
       * +optional
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        path_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceReference> PARSER =
        new com.google.protobuf.AbstractParser<ServiceReference>() {
          @java.lang.Override
          public ServiceReference parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceReference(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceReference> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceReference> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface WebhookClientConfigOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * `url` gives the location of the webhook, in standard URL form
     * (`scheme://host:port/path`). Exactly one of `url` or `service`
     * must be specified.
     * The `host` should not refer to a service running in the cluster; use
     * the `service` field instead. The host might be resolved via external
     * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
     * in-cluster DNS as that would be a layering violation). `host` may
     * also be an IP address.
     * Please note that using `localhost` or `127.0.0.1` as a `host` is
     * risky unless you take great care to run this webhook on all hosts
     * which run an apiserver which might need to make calls to this
     * webhook. Such installs are likely to be non-portable, i.e., not easy
     * to turn up in a new cluster.
     * The scheme must be "https"; the URL must begin with "https://".
     * A path is optional, and if present may be any string permissible in
     * a URL. You may use the path to pass an arbitrary string to the
     * webhook, for example, a cluster identifier.
     * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
     * allowed. Fragments ("#...") and query parameters ("?...") are not
     * allowed, either.
     * +optional
     * </pre>
     *
     * <code>optional string url = 3;</code>
     */
    boolean hasUrl();
    /**
     *
     *
     * <pre>
     * `url` gives the location of the webhook, in standard URL form
     * (`scheme://host:port/path`). Exactly one of `url` or `service`
     * must be specified.
     * The `host` should not refer to a service running in the cluster; use
     * the `service` field instead. The host might be resolved via external
     * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
     * in-cluster DNS as that would be a layering violation). `host` may
     * also be an IP address.
     * Please note that using `localhost` or `127.0.0.1` as a `host` is
     * risky unless you take great care to run this webhook on all hosts
     * which run an apiserver which might need to make calls to this
     * webhook. Such installs are likely to be non-portable, i.e., not easy
     * to turn up in a new cluster.
     * The scheme must be "https"; the URL must begin with "https://".
     * A path is optional, and if present may be any string permissible in
     * a URL. You may use the path to pass an arbitrary string to the
     * webhook, for example, a cluster identifier.
     * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
     * allowed. Fragments ("#...") and query parameters ("?...") are not
     * allowed, either.
     * +optional
     * </pre>
     *
     * <code>optional string url = 3;</code>
     */
    java.lang.String getUrl();
    /**
     *
     *
     * <pre>
     * `url` gives the location of the webhook, in standard URL form
     * (`scheme://host:port/path`). Exactly one of `url` or `service`
     * must be specified.
     * The `host` should not refer to a service running in the cluster; use
     * the `service` field instead. The host might be resolved via external
     * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
     * in-cluster DNS as that would be a layering violation). `host` may
     * also be an IP address.
     * Please note that using `localhost` or `127.0.0.1` as a `host` is
     * risky unless you take great care to run this webhook on all hosts
     * which run an apiserver which might need to make calls to this
     * webhook. Such installs are likely to be non-portable, i.e., not easy
     * to turn up in a new cluster.
     * The scheme must be "https"; the URL must begin with "https://".
     * A path is optional, and if present may be any string permissible in
     * a URL. You may use the path to pass an arbitrary string to the
     * webhook, for example, a cluster identifier.
     * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
     * allowed. Fragments ("#...") and query parameters ("?...") are not
     * allowed, either.
     * +optional
     * </pre>
     *
     * <code>optional string url = 3;</code>
     */
    com.google.protobuf.ByteString getUrlBytes();

    /**
     *
     *
     * <pre>
     * `service` is a reference to the service for this webhook. Either
     * `service` or `url` must be specified.
     * If the webhook is running within the cluster, then you should use `service`.
     * Port 443 will be used if it is open, otherwise it is an error.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
     * </code>
     */
    boolean hasService();
    /**
     *
     *
     * <pre>
     * `service` is a reference to the service for this webhook. Either
     * `service` or `url` must be specified.
     * If the webhook is running within the cluster, then you should use `service`.
     * Port 443 will be used if it is open, otherwise it is an error.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference getService();
    /**
     *
     *
     * <pre>
     * `service` is a reference to the service for this webhook. Either
     * `service` or `url` must be specified.
     * If the webhook is running within the cluster, then you should use `service`.
     * Port 443 will be used if it is open, otherwise it is an error.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder getServiceOrBuilder();

    /**
     *
     *
     * <pre>
     * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
     * If unspecified, system trust roots on the apiserver are used.
     * +optional
     * </pre>
     *
     * <code>optional bytes caBundle = 2;</code>
     */
    boolean hasCaBundle();
    /**
     *
     *
     * <pre>
     * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
     * If unspecified, system trust roots on the apiserver are used.
     * +optional
     * </pre>
     *
     * <code>optional bytes caBundle = 2;</code>
     */
    com.google.protobuf.ByteString getCaBundle();
  }
  /**
   *
   *
   * <pre>
   * WebhookClientConfig contains the information to make a TLS
   * connection with the webhook. It has the same field as admissionregistration.v1beta1.WebhookClientConfig.
   * </pre>
   *
   * Protobuf type {@code
   * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig}
   */
  public static final class WebhookClientConfig extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig)
      WebhookClientConfigOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use WebhookClientConfig.newBuilder() to construct.
    private WebhookClientConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private WebhookClientConfig() {
      url_ = "";
      caBundle_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private WebhookClientConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder
                    subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = service_.toBuilder();
                }
                service_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(service_);
                  service_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 18:
              {
                bitField0_ |= 0x00000004;
                caBundle_ = input.readBytes();
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                url_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1beta1Apiextensions
          .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.class,
              io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder.class);
    }

    private int bitField0_;
    public static final int URL_FIELD_NUMBER = 3;
    private volatile java.lang.Object url_;
    /**
     *
     *
     * <pre>
     * `url` gives the location of the webhook, in standard URL form
     * (`scheme://host:port/path`). Exactly one of `url` or `service`
     * must be specified.
     * The `host` should not refer to a service running in the cluster; use
     * the `service` field instead. The host might be resolved via external
     * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
     * in-cluster DNS as that would be a layering violation). `host` may
     * also be an IP address.
     * Please note that using `localhost` or `127.0.0.1` as a `host` is
     * risky unless you take great care to run this webhook on all hosts
     * which run an apiserver which might need to make calls to this
     * webhook. Such installs are likely to be non-portable, i.e., not easy
     * to turn up in a new cluster.
     * The scheme must be "https"; the URL must begin with "https://".
     * A path is optional, and if present may be any string permissible in
     * a URL. You may use the path to pass an arbitrary string to the
     * webhook, for example, a cluster identifier.
     * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
     * allowed. Fragments ("#...") and query parameters ("?...") are not
     * allowed, either.
     * +optional
     * </pre>
     *
     * <code>optional string url = 3;</code>
     */
    public boolean hasUrl() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * `url` gives the location of the webhook, in standard URL form
     * (`scheme://host:port/path`). Exactly one of `url` or `service`
     * must be specified.
     * The `host` should not refer to a service running in the cluster; use
     * the `service` field instead. The host might be resolved via external
     * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
     * in-cluster DNS as that would be a layering violation). `host` may
     * also be an IP address.
     * Please note that using `localhost` or `127.0.0.1` as a `host` is
     * risky unless you take great care to run this webhook on all hosts
     * which run an apiserver which might need to make calls to this
     * webhook. Such installs are likely to be non-portable, i.e., not easy
     * to turn up in a new cluster.
     * The scheme must be "https"; the URL must begin with "https://".
     * A path is optional, and if present may be any string permissible in
     * a URL. You may use the path to pass an arbitrary string to the
     * webhook, for example, a cluster identifier.
     * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
     * allowed. Fragments ("#...") and query parameters ("?...") are not
     * allowed, either.
     * +optional
     * </pre>
     *
     * <code>optional string url = 3;</code>
     */
    public java.lang.String getUrl() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          url_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * `url` gives the location of the webhook, in standard URL form
     * (`scheme://host:port/path`). Exactly one of `url` or `service`
     * must be specified.
     * The `host` should not refer to a service running in the cluster; use
     * the `service` field instead. The host might be resolved via external
     * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
     * in-cluster DNS as that would be a layering violation). `host` may
     * also be an IP address.
     * Please note that using `localhost` or `127.0.0.1` as a `host` is
     * risky unless you take great care to run this webhook on all hosts
     * which run an apiserver which might need to make calls to this
     * webhook. Such installs are likely to be non-portable, i.e., not easy
     * to turn up in a new cluster.
     * The scheme must be "https"; the URL must begin with "https://".
     * A path is optional, and if present may be any string permissible in
     * a URL. You may use the path to pass an arbitrary string to the
     * webhook, for example, a cluster identifier.
     * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
     * allowed. Fragments ("#...") and query parameters ("?...") are not
     * allowed, either.
     * +optional
     * </pre>
     *
     * <code>optional string url = 3;</code>
     */
    public com.google.protobuf.ByteString getUrlBytes() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        url_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERVICE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference service_;
    /**
     *
     *
     * <pre>
     * `service` is a reference to the service for this webhook. Either
     * `service` or `url` must be specified.
     * If the webhook is running within the cluster, then you should use `service`.
     * Port 443 will be used if it is open, otherwise it is an error.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
     * </code>
     */
    public boolean hasService() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * `service` is a reference to the service for this webhook. Either
     * `service` or `url` must be specified.
     * If the webhook is running within the cluster, then you should use `service`.
     * Port 443 will be used if it is open, otherwise it is an error.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference getService() {
      return service_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.getDefaultInstance()
          : service_;
    }
    /**
     *
     *
     * <pre>
     * `service` is a reference to the service for this webhook. Either
     * `service` or `url` must be specified.
     * If the webhook is running within the cluster, then you should use `service`.
     * Port 443 will be used if it is open, otherwise it is an error.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder
        getServiceOrBuilder() {
      return service_ == null
          ? io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.getDefaultInstance()
          : service_;
    }

    public static final int CABUNDLE_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString caBundle_;
    /**
     *
     *
     * <pre>
     * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
     * If unspecified, system trust roots on the apiserver are used.
     * +optional
     * </pre>
     *
     * <code>optional bytes caBundle = 2;</code>
     */
    public boolean hasCaBundle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
     * If unspecified, system trust roots on the apiserver are used.
     * +optional
     * </pre>
     *
     * <code>optional bytes caBundle = 2;</code>
     */
    public com.google.protobuf.ByteString getCaBundle() {
      return caBundle_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(1, getService());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(2, caBundle_);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, url_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getService());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, caBundle_);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, url_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig other =
          (io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig) obj;

      boolean result = true;
      result = result && (hasUrl() == other.hasUrl());
      if (hasUrl()) {
        result = result && getUrl().equals(other.getUrl());
      }
      result = result && (hasService() == other.hasService());
      if (hasService()) {
        result = result && getService().equals(other.getService());
      }
      result = result && (hasCaBundle() == other.hasCaBundle());
      if (hasCaBundle()) {
        result = result && getCaBundle().equals(other.getCaBundle());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasUrl()) {
        hash = (37 * hash) + URL_FIELD_NUMBER;
        hash = (53 * hash) + getUrl().hashCode();
      }
      if (hasService()) {
        hash = (37 * hash) + SERVICE_FIELD_NUMBER;
        hash = (53 * hash) + getService().hashCode();
      }
      if (hasCaBundle()) {
        hash = (37 * hash) + CABUNDLE_FIELD_NUMBER;
        hash = (53 * hash) + getCaBundle().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * WebhookClientConfig contains the information to make a TLS
     * connection with the webhook. It has the same field as admissionregistration.v1beta1.WebhookClientConfig.
     * </pre>
     *
     * Protobuf type {@code
     * k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig)
        io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.class,
                io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getServiceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        url_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (serviceBuilder_ == null) {
          service_ = null;
        } else {
          serviceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        caBundle_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions
            .internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
            .getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig build() {
        io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig buildPartial() {
        io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig result =
            new io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.url_ = url_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (serviceBuilder_ == null) {
          result.service_ = service_;
        } else {
          result.service_ = serviceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.caBundle_ = caBundle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig) {
          return mergeFrom(
              (io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig other) {
        if (other
            == io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
                .getDefaultInstance()) return this;
        if (other.hasUrl()) {
          bitField0_ |= 0x00000001;
          url_ = other.url_;
          onChanged();
        }
        if (other.hasService()) {
          mergeService(other.getService());
        }
        if (other.hasCaBundle()) {
          setCaBundle(other.getCaBundle());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object url_ = "";
      /**
       *
       *
       * <pre>
       * `url` gives the location of the webhook, in standard URL form
       * (`scheme://host:port/path`). Exactly one of `url` or `service`
       * must be specified.
       * The `host` should not refer to a service running in the cluster; use
       * the `service` field instead. The host might be resolved via external
       * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
       * in-cluster DNS as that would be a layering violation). `host` may
       * also be an IP address.
       * Please note that using `localhost` or `127.0.0.1` as a `host` is
       * risky unless you take great care to run this webhook on all hosts
       * which run an apiserver which might need to make calls to this
       * webhook. Such installs are likely to be non-portable, i.e., not easy
       * to turn up in a new cluster.
       * The scheme must be "https"; the URL must begin with "https://".
       * A path is optional, and if present may be any string permissible in
       * a URL. You may use the path to pass an arbitrary string to the
       * webhook, for example, a cluster identifier.
       * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
       * allowed. Fragments ("#...") and query parameters ("?...") are not
       * allowed, either.
       * +optional
       * </pre>
       *
       * <code>optional string url = 3;</code>
       */
      public boolean hasUrl() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * `url` gives the location of the webhook, in standard URL form
       * (`scheme://host:port/path`). Exactly one of `url` or `service`
       * must be specified.
       * The `host` should not refer to a service running in the cluster; use
       * the `service` field instead. The host might be resolved via external
       * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
       * in-cluster DNS as that would be a layering violation). `host` may
       * also be an IP address.
       * Please note that using `localhost` or `127.0.0.1` as a `host` is
       * risky unless you take great care to run this webhook on all hosts
       * which run an apiserver which might need to make calls to this
       * webhook. Such installs are likely to be non-portable, i.e., not easy
       * to turn up in a new cluster.
       * The scheme must be "https"; the URL must begin with "https://".
       * A path is optional, and if present may be any string permissible in
       * a URL. You may use the path to pass an arbitrary string to the
       * webhook, for example, a cluster identifier.
       * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
       * allowed. Fragments ("#...") and query parameters ("?...") are not
       * allowed, either.
       * +optional
       * </pre>
       *
       * <code>optional string url = 3;</code>
       */
      public java.lang.String getUrl() {
        java.lang.Object ref = url_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            url_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `url` gives the location of the webhook, in standard URL form
       * (`scheme://host:port/path`). Exactly one of `url` or `service`
       * must be specified.
       * The `host` should not refer to a service running in the cluster; use
       * the `service` field instead. The host might be resolved via external
       * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
       * in-cluster DNS as that would be a layering violation). `host` may
       * also be an IP address.
       * Please note that using `localhost` or `127.0.0.1` as a `host` is
       * risky unless you take great care to run this webhook on all hosts
       * which run an apiserver which might need to make calls to this
       * webhook. Such installs are likely to be non-portable, i.e., not easy
       * to turn up in a new cluster.
       * The scheme must be "https"; the URL must begin with "https://".
       * A path is optional, and if present may be any string permissible in
       * a URL. You may use the path to pass an arbitrary string to the
       * webhook, for example, a cluster identifier.
       * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
       * allowed. Fragments ("#...") and query parameters ("?...") are not
       * allowed, either.
       * +optional
       * </pre>
       *
       * <code>optional string url = 3;</code>
       */
      public com.google.protobuf.ByteString getUrlBytes() {
        java.lang.Object ref = url_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          url_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * `url` gives the location of the webhook, in standard URL form
       * (`scheme://host:port/path`). Exactly one of `url` or `service`
       * must be specified.
       * The `host` should not refer to a service running in the cluster; use
       * the `service` field instead. The host might be resolved via external
       * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
       * in-cluster DNS as that would be a layering violation). `host` may
       * also be an IP address.
       * Please note that using `localhost` or `127.0.0.1` as a `host` is
       * risky unless you take great care to run this webhook on all hosts
       * which run an apiserver which might need to make calls to this
       * webhook. Such installs are likely to be non-portable, i.e., not easy
       * to turn up in a new cluster.
       * The scheme must be "https"; the URL must begin with "https://".
       * A path is optional, and if present may be any string permissible in
       * a URL. You may use the path to pass an arbitrary string to the
       * webhook, for example, a cluster identifier.
       * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
       * allowed. Fragments ("#...") and query parameters ("?...") are not
       * allowed, either.
       * +optional
       * </pre>
       *
       * <code>optional string url = 3;</code>
       */
      public Builder setUrl(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        url_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `url` gives the location of the webhook, in standard URL form
       * (`scheme://host:port/path`). Exactly one of `url` or `service`
       * must be specified.
       * The `host` should not refer to a service running in the cluster; use
       * the `service` field instead. The host might be resolved via external
       * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
       * in-cluster DNS as that would be a layering violation). `host` may
       * also be an IP address.
       * Please note that using `localhost` or `127.0.0.1` as a `host` is
       * risky unless you take great care to run this webhook on all hosts
       * which run an apiserver which might need to make calls to this
       * webhook. Such installs are likely to be non-portable, i.e., not easy
       * to turn up in a new cluster.
       * The scheme must be "https"; the URL must begin with "https://".
       * A path is optional, and if present may be any string permissible in
       * a URL. You may use the path to pass an arbitrary string to the
       * webhook, for example, a cluster identifier.
       * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
       * allowed. Fragments ("#...") and query parameters ("?...") are not
       * allowed, either.
       * +optional
       * </pre>
       *
       * <code>optional string url = 3;</code>
       */
      public Builder clearUrl() {
        bitField0_ = (bitField0_ & ~0x00000001);
        url_ = getDefaultInstance().getUrl();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `url` gives the location of the webhook, in standard URL form
       * (`scheme://host:port/path`). Exactly one of `url` or `service`
       * must be specified.
       * The `host` should not refer to a service running in the cluster; use
       * the `service` field instead. The host might be resolved via external
       * DNS in some apiservers (e.g., `kube-apiserver` cannot resolve
       * in-cluster DNS as that would be a layering violation). `host` may
       * also be an IP address.
       * Please note that using `localhost` or `127.0.0.1` as a `host` is
       * risky unless you take great care to run this webhook on all hosts
       * which run an apiserver which might need to make calls to this
       * webhook. Such installs are likely to be non-portable, i.e., not easy
       * to turn up in a new cluster.
       * The scheme must be "https"; the URL must begin with "https://".
       * A path is optional, and if present may be any string permissible in
       * a URL. You may use the path to pass an arbitrary string to the
       * webhook, for example, a cluster identifier.
       * Attempting to use a user or basic auth e.g. "user:password&#64;" is not
       * allowed. Fragments ("#...") and query parameters ("?...") are not
       * allowed, either.
       * +optional
       * </pre>
       *
       * <code>optional string url = 3;</code>
       */
      public Builder setUrlBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        url_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference service_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference,
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder>
          serviceBuilder_;
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public boolean hasService() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference getService() {
        if (serviceBuilder_ == null) {
          return service_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
                  .getDefaultInstance()
              : service_;
        } else {
          return serviceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public Builder setService(
          io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference value) {
        if (serviceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          service_ = value;
          onChanged();
        } else {
          serviceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public Builder setService(
          io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder
              builderForValue) {
        if (serviceBuilder_ == null) {
          service_ = builderForValue.build();
          onChanged();
        } else {
          serviceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public Builder mergeService(
          io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference value) {
        if (serviceBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && service_ != null
              && service_
                  != io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
                      .getDefaultInstance()) {
            service_ =
                io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.newBuilder(
                        service_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            service_ = value;
          }
          onChanged();
        } else {
          serviceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public Builder clearService() {
        if (serviceBuilder_ == null) {
          service_ = null;
          onChanged();
        } else {
          serviceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder
          getServiceBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getServiceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder
          getServiceOrBuilder() {
        if (serviceBuilder_ != null) {
          return serviceBuilder_.getMessageOrBuilder();
        } else {
          return service_ == null
              ? io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference
                  .getDefaultInstance()
              : service_;
        }
      }
      /**
       *
       *
       * <pre>
       * `service` is a reference to the service for this webhook. Either
       * `service` or `url` must be specified.
       * If the webhook is running within the cluster, then you should use `service`.
       * Port 443 will be used if it is open, otherwise it is an error.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference service = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference,
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder,
              io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder>
          getServiceFieldBuilder() {
        if (serviceBuilder_ == null) {
          serviceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReference.Builder,
                  io.kubernetes.client.proto.V1beta1Apiextensions.ServiceReferenceOrBuilder>(
                  getService(), getParentForChildren(), isClean());
          service_ = null;
        }
        return serviceBuilder_;
      }

      private com.google.protobuf.ByteString caBundle_ = com.google.protobuf.ByteString.EMPTY;
      /**
       *
       *
       * <pre>
       * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
       * If unspecified, system trust roots on the apiserver are used.
       * +optional
       * </pre>
       *
       * <code>optional bytes caBundle = 2;</code>
       */
      public boolean hasCaBundle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
       * If unspecified, system trust roots on the apiserver are used.
       * +optional
       * </pre>
       *
       * <code>optional bytes caBundle = 2;</code>
       */
      public com.google.protobuf.ByteString getCaBundle() {
        return caBundle_;
      }
      /**
       *
       *
       * <pre>
       * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
       * If unspecified, system trust roots on the apiserver are used.
       * +optional
       * </pre>
       *
       * <code>optional bytes caBundle = 2;</code>
       */
      public Builder setCaBundle(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        caBundle_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.
       * If unspecified, system trust roots on the apiserver are used.
       * +optional
       * </pre>
       *
       * <code>optional bytes caBundle = 2;</code>
       */
      public Builder clearCaBundle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        caBundle_ = getDefaultInstance().getCaBundle();
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig)
    private static final io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig();
    }

    public static io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<WebhookClientConfig> PARSER =
        new com.google.protobuf.AbstractParser<WebhookClientConfig>() {
          @java.lang.Override
          public WebhookClientConfig parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new WebhookClientConfig(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<WebhookClientConfig> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WebhookClientConfig> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1beta1Apiextensions.WebhookClientConfig
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionRequest_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionResponse_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionReview_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionReview_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceConversion_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceConversion_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceValidation_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceValidation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ExternalDocumentation_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ExternalDocumentation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PropertiesEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PropertiesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PatternPropertiesEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PatternPropertiesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DependenciesEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DependenciesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DefinitionsEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DefinitionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

  static {
    java.lang.String[] descriptorData = {
      "\nMk8s.io/apiextensions-apiserver/pkg/api"
          + "s/apiextensions/v1beta1/generated.proto\022"
          + "=k8s.io.apiextensions_apiserver.pkg.apis"
          + ".apiextensions.v1beta1\0324k8s.io/apimachin"
          + "ery/pkg/apis/meta/v1/generated.proto\032/k8"
          + "s.io/apimachinery/pkg/runtime/generated."
          + "proto\0326k8s.io/apimachinery/pkg/runtime/s"
          + "chema/generated.proto\"{\n\021ConversionReque"
          + "st\022\013\n\003uid\030\001 \001(\t\022\031\n\021desiredAPIVersion\030\002 \001"
          + "(\t\022>\n\007objects\030\003 \003(\0132-.k8s.io.apimachiner"
          + "y.pkg.runtime.RawExtension\"\250\001\n\022Conversio"
          + "nResponse\022\013\n\003uid\030\001 \001(\t\022G\n\020convertedObjec"
          + "ts\030\002 \003(\0132-.k8s.io.apimachinery.pkg.runti"
          + "me.RawExtension\022<\n\006result\030\003 \001(\0132,.k8s.io"
          + ".apimachinery.pkg.apis.meta.v1.Status\"\332\001"
          + "\n\020ConversionReview\022a\n\007request\030\001 \001(\0132P.k8"
          + "s.io.apiextensions_apiserver.pkg.apis.ap"
          + "iextensions.v1beta1.ConversionRequest\022c\n"
          + "\010response\030\002 \001(\0132Q.k8s.io.apiextensions_a"
          + "piserver.pkg.apis.apiextensions.v1beta1."
          + "ConversionResponse\"\205\001\n\036CustomResourceCol"
          + "umnDefinition\022\014\n\004name\030\001 \001(\t\022\014\n\004type\030\002 \001("
          + "\t\022\016\n\006format\030\003 \001(\t\022\023\n\013description\030\004 \001(\t\022\020"
          + "\n\010priority\030\005 \001(\005\022\020\n\010JSONPath\030\006 \001(\t\"\235\001\n\030C"
          + "ustomResourceConversion\022\020\n\010strategy\030\001 \001("
          + "\t\022o\n\023webhookClientConfig\030\002 \001(\0132R.k8s.io."
          + "apiextensions_apiserver.pkg.apis.apiexte"
          + "nsions.v1beta1.WebhookClientConfig\"\270\002\n\030C"
          + "ustomResourceDefinition\022B\n\010metadata\030\001 \001("
          + "\01320.k8s.io.apimachinery.pkg.apis.meta.v1"
          + ".ObjectMeta\022i\n\004spec\030\002 \001(\0132[.k8s.io.apiex"
          + "tensions_apiserver.pkg.apis.apiextension"
          + "s.v1beta1.CustomResourceDefinitionSpec\022m"
          + "\n\006status\030\003 \001(\0132].k8s.io.apiextensions_ap"
          + "iserver.pkg.apis.apiextensions.v1beta1.C"
          + "ustomResourceDefinitionStatus\"\252\001\n!Custom"
          + "ResourceDefinitionCondition\022\014\n\004type\030\001 \001("
          + "\t\022\016\n\006status\030\002 \001(\t\022F\n\022lastTransitionTime\030"
          + "\003 \001(\0132*.k8s.io.apimachinery.pkg.apis.met"
          + "a.v1.Time\022\016\n\006reason\030\004 \001(\t\022\017\n\007message\030\005 \001"
          + "(\t\"\310\001\n\034CustomResourceDefinitionList\022@\n\010m"
          + "etadata\030\001 \001(\0132..k8s.io.apimachinery.pkg."
          + "apis.meta.v1.ListMeta\022f\n\005items\030\002 \003(\0132W.k"
          + "8s.io.apiextensions_apiserver.pkg.apis.a"
          + "piextensions.v1beta1.CustomResourceDefin"
          + "ition\"\211\001\n\035CustomResourceDefinitionNames\022"
          + "\016\n\006plural\030\001 \001(\t\022\020\n\010singular\030\002 \001(\t\022\022\n\nsho"
          + "rtNames\030\003 \003(\t\022\014\n\004kind\030\004 \001(\t\022\020\n\010listKind\030"
          + "\005 \001(\t\022\022\n\ncategories\030\006 \003(\t\"\370\005\n\034CustomReso"
          + "urceDefinitionSpec\022\r\n\005group\030\001 \001(\t\022\017\n\007ver"
          + "sion\030\002 \001(\t\022k\n\005names\030\003 \001(\0132\\.k8s.io.apiex"
          + "tensions_apiserver.pkg.apis.apiextension"
          + "s.v1beta1.CustomResourceDefinitionNames\022"
          + "\r\n\005scope\030\004 \001(\t\022k\n\nvalidation\030\005 \001(\0132W.k8s"
          + ".io.apiextensions_apiserver.pkg.apis.api"
          + "extensions.v1beta1.CustomResourceValidat"
          + "ion\022o\n\014subresources\030\006 \001(\0132Y.k8s.io.apiex"
          + "tensions_apiserver.pkg.apis.apiextension"
          + "s.v1beta1.CustomResourceSubresources\022p\n\010"
          + "versions\030\007 \003(\0132^.k8s.io.apiextensions_ap"
          + "iserver.pkg.apis.apiextensions.v1beta1.C"
          + "ustomResourceDefinitionVersion\022\177\n\030additi"
          + "onalPrinterColumns\030\010 \003(\0132].k8s.io.apiext"
          + "ensions_apiserver.pkg.apis.apiextensions"
          + ".v1beta1.CustomResourceColumnDefinition\022"
          + "k\n\nconversion\030\t \001(\0132W.k8s.io.apiextensio"
          + "ns_apiserver.pkg.apis.apiextensions.v1be"
          + "ta1.CustomResourceConversion\"\243\002\n\036CustomR"
          + "esourceDefinitionStatus\022t\n\nconditions\030\001 "
          + "\003(\0132`.k8s.io.apiextensions_apiserver.pkg"
          + ".apis.apiextensions.v1beta1.CustomResour"
          + "ceDefinitionCondition\022s\n\racceptedNames\030\002"
          + " \001(\0132\\.k8s.io.apiextensions_apiserver.pk"
          + "g.apis.apiextensions.v1beta1.CustomResou"
          + "rceDefinitionNames\022\026\n\016storedVersions\030\003 \003"
          + "(\t\"\253\003\n\037CustomResourceDefinitionVersion\022\014"
          + "\n\004name\030\001 \001(\t\022\016\n\006served\030\002 \001(\010\022\017\n\007storage\030"
          + "\003 \001(\010\022g\n\006schema\030\004 \001(\0132W.k8s.io.apiextens"
          + "ions_apiserver.pkg.apis.apiextensions.v1"
          + "beta1.CustomResourceValidation\022o\n\014subres"
          + "ources\030\005 \001(\0132Y.k8s.io.apiextensions_apis"
          + "erver.pkg.apis.apiextensions.v1beta1.Cus"
          + "tomResourceSubresources\022\177\n\030additionalPri"
          + "nterColumns\030\006 \003(\0132].k8s.io.apiextensions"
          + "_apiserver.pkg.apis.apiextensions.v1beta"
          + "1.CustomResourceColumnDefinition\"q\n\036Cust"
          + "omResourceSubresourceScale\022\030\n\020specReplic"
          + "asPath\030\001 \001(\t\022\032\n\022statusReplicasPath\030\002 \001(\t"
          + "\022\031\n\021labelSelectorPath\030\003 \001(\t\"!\n\037CustomRes"
          + "ourceSubresourceStatus\"\372\001\n\032CustomResourc"
          + "eSubresources\022n\n\006status\030\001 \001(\0132^.k8s.io.a"
          + "piextensions_apiserver.pkg.apis.apiexten"
          + "sions.v1beta1.CustomResourceSubresourceS"
          + "tatus\022l\n\005scale\030\002 \001(\0132].k8s.io.apiextensi"
          + "ons_apiserver.pkg.apis.apiextensions.v1b"
          + "eta1.CustomResourceSubresourceScale\"\203\001\n\030"
          + "CustomResourceValidation\022g\n\017openAPIV3Sch"
          + "ema\030\001 \001(\0132N.k8s.io.apiextensions_apiserv"
          + "er.pkg.apis.apiextensions.v1beta1.JSONSc"
          + "hemaProps\"9\n\025ExternalDocumentation\022\023\n\013de"
          + "scription\030\001 \001(\t\022\013\n\003url\030\002 \001(\t\"\023\n\004JSON\022\013\n\003"
          + "raw\030\001 \001(\014\"\320\023\n\017JSONSchemaProps\022\n\n\002id\030\001 \001("
          + "\t\022\016\n\006schema\030\002 \001(\t\022\013\n\003ref\030\003 \001(\t\022\023\n\013descri"
          + "ption\030\004 \001(\t\022\014\n\004type\030\005 \001(\t\022\016\n\006format\030\006 \001("
          + "\t\022\r\n\005title\030\007 \001(\t\022T\n\007default\030\010 \001(\0132C.k8s."
          + "io.apiextensions_apiserver.pkg.apis.apie"
          + "xtensions.v1beta1.JSON\022\017\n\007maximum\030\t \001(\001\022"
          + "\030\n\020exclusiveMaximum\030\n \001(\010\022\017\n\007minimum\030\013 \001"
          + "(\001\022\030\n\020exclusiveMinimum\030\014 \001(\010\022\021\n\tmaxLengt"
          + "h\030\r \001(\003\022\021\n\tminLength\030\016 \001(\003\022\017\n\007pattern\030\017 "
          + "\001(\t\022\020\n\010maxItems\030\020 \001(\003\022\020\n\010minItems\030\021 \001(\003\022"
          + "\023\n\013uniqueItems\030\022 \001(\010\022\022\n\nmultipleOf\030\023 \001(\001"
          + "\022Q\n\004enum\030\024 \003(\0132C.k8s.io.apiextensions_ap"
          + "iserver.pkg.apis.apiextensions.v1beta1.J"
          + "SON\022\025\n\rmaxProperties\030\025 \001(\003\022\025\n\rminPropert"
          + "ies\030\026 \001(\003\022\020\n\010required\030\027 \003(\t\022d\n\005items\030\030 \001"
          + "(\0132U.k8s.io.apiextensions_apiserver.pkg."
          + "apis.apiextensions.v1beta1.JSONSchemaPro"
          + "psOrArray\022]\n\005allOf\030\031 \003(\0132N.k8s.io.apiext"
          + "ensions_apiserver.pkg.apis.apiextensions"
          + ".v1beta1.JSONSchemaProps\022]\n\005oneOf\030\032 \003(\0132"
          + "N.k8s.io.apiextensions_apiserver.pkg.api"
          + "s.apiextensions.v1beta1.JSONSchemaProps\022"
          + "]\n\005anyOf\030\033 \003(\0132N.k8s.io.apiextensions_ap"
          + "iserver.pkg.apis.apiextensions.v1beta1.J"
          + "SONSchemaProps\022[\n\003not\030\034 \001(\0132N.k8s.io.api"
          + "extensions_apiserver.pkg.apis.apiextensi"
          + "ons.v1beta1.JSONSchemaProps\022r\n\npropertie"
          + "s\030\035 \003(\0132^.k8s.io.apiextensions_apiserver"
          + ".pkg.apis.apiextensions.v1beta1.JSONSche"
          + "maProps.PropertiesEntry\022r\n\024additionalPro"
          + "perties\030\036 \001(\0132T.k8s.io.apiextensions_api"
          + "server.pkg.apis.apiextensions.v1beta1.JS"
          + "ONSchemaPropsOrBool\022\200\001\n\021patternPropertie"
          + "s\030\037 \003(\0132e.k8s.io.apiextensions_apiserver"
          + ".pkg.apis.apiextensions.v1beta1.JSONSche"
          + "maProps.PatternPropertiesEntry\022v\n\014depend"
          + "encies\030  \003(\0132`.k8s.io.apiextensions_apis"
          + "erver.pkg.apis.apiextensions.v1beta1.JSO"
          + "NSchemaProps.DependenciesEntry\022m\n\017additi"
          + "onalItems\030! \001(\0132T.k8s.io.apiextensions_a"
          + "piserver.pkg.apis.apiextensions.v1beta1."
          + "JSONSchemaPropsOrBool\022t\n\013definitions\030\" \003"
          + "(\0132_.k8s.io.apiextensions_apiserver.pkg."
          + "apis.apiextensions.v1beta1.JSONSchemaPro"
          + "ps.DefinitionsEntry\022j\n\014externalDocs\030# \001("
          + "\0132T.k8s.io.apiextensions_apiserver.pkg.a"
          + "pis.apiextensions.v1beta1.ExternalDocume"
          + "ntation\022T\n\007example\030$ \001(\0132C.k8s.io.apiext"
          + "ensions_apiserver.pkg.apis.apiextensions"
          + ".v1beta1.JSON\032\201\001\n\017PropertiesEntry\022\013\n\003key"
          + "\030\001 \001(\t\022]\n\005value\030\002 \001(\0132N.k8s.io.apiextens"
          + "ions_apiserver.pkg.apis.apiextensions.v1"
          + "beta1.JSONSchemaProps:\0028\001\032\210\001\n\026PatternPro"
          + "pertiesEntry\022\013\n\003key\030\001 \001(\t\022]\n\005value\030\002 \001(\013"
          + "2N.k8s.io.apiextensions_apiserver.pkg.ap"
          + "is.apiextensions.v1beta1.JSONSchemaProps"
          + ":\0028\001\032\220\001\n\021DependenciesEntry\022\013\n\003key\030\001 \001(\t\022"
          + "j\n\005value\030\002 \001(\0132[.k8s.io.apiextensions_ap"
          + "iserver.pkg.apis.apiextensions.v1beta1.J"
          + "SONSchemaPropsOrStringArray:\0028\001\032\202\001\n\020Defi"
          + "nitionsEntry\022\013\n\003key\030\001 \001(\t\022]\n\005value\030\002 \001(\013"
          + "2N.k8s.io.apiextensions_apiserver.pkg.ap"
          + "is.apiextensions.v1beta1.JSONSchemaProps"
          + ":\0028\001\"\335\001\n\026JSONSchemaPropsOrArray\022^\n\006schem"
          + "a\030\001 \001(\0132N.k8s.io.apiextensions_apiserver"
          + ".pkg.apis.apiextensions.v1beta1.JSONSche"
          + "maProps\022c\n\013jSONSchemas\030\002 \003(\0132N.k8s.io.ap"
          + "iextensions_apiserver.pkg.apis.apiextens"
          + "ions.v1beta1.JSONSchemaProps\"\207\001\n\025JSONSch"
          + "emaPropsOrBool\022\016\n\006allows\030\001 \001(\010\022^\n\006schema"
          + "\030\002 \001(\0132N.k8s.io.apiextensions_apiserver."
          + "pkg.apis.apiextensions.v1beta1.JSONSchem"
          + "aProps\"\220\001\n\034JSONSchemaPropsOrStringArray\022"
          + "^\n\006schema\030\001 \001(\0132N.k8s.io.apiextensions_a"
          + "piserver.pkg.apis.apiextensions.v1beta1."
          + "JSONSchemaProps\022\020\n\010property\030\002 \003(\t\"A\n\020Ser"
          + "viceReference\022\021\n\tnamespace\030\001 \001(\t\022\014\n\004name"
          + "\030\002 \001(\t\022\014\n\004path\030\003 \001(\t\"\226\001\n\023WebhookClientCo"
          + "nfig\022\013\n\003url\030\003 \001(\t\022`\n\007service\030\001 \001(\0132O.k8s"
          + ".io.apiextensions_apiserver.pkg.apis.api"
          + "extensions.v1beta1.ServiceReference\022\020\n\010c"
          + "aBundle\030\002 \001(\014B;\n\032io.kubernetes.client.pr"
          + "otoB\024V1beta1ApiextensionsZ\007v1beta1"
    };
    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.Meta.getDescriptor(),
          io.kubernetes.client.proto.Runtime.getDescriptor(),
          io.kubernetes.client.proto.RuntimeSchema.getDescriptor(),
        },
        assigner);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionRequest_descriptor =
        getDescriptor().getMessageTypes().get(0);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionRequest_descriptor,
            new java.lang.String[] {
              "Uid", "DesiredAPIVersion", "Objects",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionResponse_descriptor =
        getDescriptor().getMessageTypes().get(1);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionResponse_descriptor,
            new java.lang.String[] {
              "Uid", "ConvertedObjects", "Result",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionReview_descriptor =
        getDescriptor().getMessageTypes().get(2);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionReview_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ConversionReview_descriptor,
            new java.lang.String[] {
              "Request", "Response",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition_descriptor =
        getDescriptor().getMessageTypes().get(3);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition_descriptor,
            new java.lang.String[] {
              "Name", "Type", "Format", "Description", "Priority", "JSONPath",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceConversion_descriptor =
        getDescriptor().getMessageTypes().get(4);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceConversion_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceConversion_descriptor,
            new java.lang.String[] {
              "Strategy", "WebhookClientConfig",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition_descriptor =
        getDescriptor().getMessageTypes().get(5);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition_descriptor =
        getDescriptor().getMessageTypes().get(6);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition_descriptor,
            new java.lang.String[] {
              "Type", "Status", "LastTransitionTime", "Reason", "Message",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList_descriptor =
        getDescriptor().getMessageTypes().get(7);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames_descriptor =
        getDescriptor().getMessageTypes().get(8);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames_descriptor,
            new java.lang.String[] {
              "Plural", "Singular", "ShortNames", "Kind", "ListKind", "Categories",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec_descriptor =
        getDescriptor().getMessageTypes().get(9);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec_descriptor,
            new java.lang.String[] {
              "Group",
              "Version",
              "Names",
              "Scope",
              "Validation",
              "Subresources",
              "Versions",
              "AdditionalPrinterColumns",
              "Conversion",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus_descriptor =
        getDescriptor().getMessageTypes().get(10);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus_descriptor,
            new java.lang.String[] {
              "Conditions", "AcceptedNames", "StoredVersions",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion_descriptor =
        getDescriptor().getMessageTypes().get(11);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion_descriptor,
            new java.lang.String[] {
              "Name", "Served", "Storage", "Schema", "Subresources", "AdditionalPrinterColumns",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale_descriptor =
        getDescriptor().getMessageTypes().get(12);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale_descriptor,
            new java.lang.String[] {
              "SpecReplicasPath", "StatusReplicasPath", "LabelSelectorPath",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus_descriptor =
        getDescriptor().getMessageTypes().get(13);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus_descriptor,
            new java.lang.String[] {});
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources_descriptor =
        getDescriptor().getMessageTypes().get(14);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources_descriptor,
            new java.lang.String[] {
              "Status", "Scale",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceValidation_descriptor =
        getDescriptor().getMessageTypes().get(15);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceValidation_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_CustomResourceValidation_descriptor,
            new java.lang.String[] {
              "OpenAPIV3Schema",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ExternalDocumentation_descriptor =
        getDescriptor().getMessageTypes().get(16);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ExternalDocumentation_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ExternalDocumentation_descriptor,
            new java.lang.String[] {
              "Description", "Url",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_descriptor =
        getDescriptor().getMessageTypes().get(17);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSON_descriptor,
            new java.lang.String[] {
              "Raw",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor =
        getDescriptor().getMessageTypes().get(18);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor,
            new java.lang.String[] {
              "Id",
              "Schema",
              "Ref",
              "Description",
              "Type",
              "Format",
              "Title",
              "Default",
              "Maximum",
              "ExclusiveMaximum",
              "Minimum",
              "ExclusiveMinimum",
              "MaxLength",
              "MinLength",
              "Pattern",
              "MaxItems",
              "MinItems",
              "UniqueItems",
              "MultipleOf",
              "Enum",
              "MaxProperties",
              "MinProperties",
              "Required",
              "Items",
              "AllOf",
              "OneOf",
              "AnyOf",
              "Not",
              "Properties",
              "AdditionalProperties",
              "PatternProperties",
              "Dependencies",
              "AdditionalItems",
              "Definitions",
              "ExternalDocs",
              "Example",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PropertiesEntry_descriptor =
        internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PropertiesEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PropertiesEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PatternPropertiesEntry_descriptor =
        internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor
            .getNestedTypes()
            .get(1);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PatternPropertiesEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_PatternPropertiesEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DependenciesEntry_descriptor =
        internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor
            .getNestedTypes()
            .get(2);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DependenciesEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DependenciesEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DefinitionsEntry_descriptor =
        internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_descriptor
            .getNestedTypes()
            .get(3);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DefinitionsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaProps_DefinitionsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_descriptor =
        getDescriptor().getMessageTypes().get(19);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray_descriptor,
            new java.lang.String[] {
              "Schema", "JSONSchemas",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_descriptor =
        getDescriptor().getMessageTypes().get(20);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool_descriptor,
            new java.lang.String[] {
              "Allows", "Schema",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_descriptor =
        getDescriptor().getMessageTypes().get(21);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray_descriptor,
            new java.lang.String[] {
              "Schema", "Property",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_descriptor =
        getDescriptor().getMessageTypes().get(22);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_ServiceReference_descriptor,
            new java.lang.String[] {
              "Namespace", "Name", "Path",
            });
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_descriptor =
        getDescriptor().getMessageTypes().get(23);
    internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_apiextensions_apiserver_pkg_apis_apiextensions_v1beta1_WebhookClientConfig_descriptor,
            new java.lang.String[] {
              "Url", "Service", "CaBundle",
            });
    io.kubernetes.client.proto.Meta.getDescriptor();
    io.kubernetes.client.proto.Runtime.getDescriptor();
    io.kubernetes.client.proto.RuntimeSchema.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
