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

package coprocess;

public final class CoprocessSessionState {
  private CoprocessSessionState() {}
  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 AccessSpecOrBuilder extends
      // @@protoc_insertion_point(interface_extends:coprocess.AccessSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string url = 1;</code>
     */
    java.lang.String getUrl();
    /**
     * <code>optional string url = 1;</code>
     */
    com.google.protobuf.ByteString
        getUrlBytes();

    /**
     * <code>repeated string methods = 2;</code>
     */
    java.util.List<java.lang.String>
        getMethodsList();
    /**
     * <code>repeated string methods = 2;</code>
     */
    int getMethodsCount();
    /**
     * <code>repeated string methods = 2;</code>
     */
    java.lang.String getMethods(int index);
    /**
     * <code>repeated string methods = 2;</code>
     */
    com.google.protobuf.ByteString
        getMethodsBytes(int index);
  }
  /**
   * Protobuf type {@code coprocess.AccessSpec}
   */
  public  static final class AccessSpec extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:coprocess.AccessSpec)
      AccessSpecOrBuilder {
    // Use AccessSpec.newBuilder() to construct.
    private AccessSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AccessSpec() {
      url_ = "";
      methods_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private AccessSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              url_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                methods_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              methods_.add(s);
              break;
            }
          }
        }
      } catch (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)) {
          methods_ = methods_.getUnmodifiableView();
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_AccessSpec_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_AccessSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              coprocess.CoprocessSessionState.AccessSpec.class, coprocess.CoprocessSessionState.AccessSpec.Builder.class);
    }

    private int bitField0_;
    public static final int URL_FIELD_NUMBER = 1;
    private volatile java.lang.Object url_;
    /**
     * <code>optional string url = 1;</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();
        url_ = s;
        return s;
      }
    }
    /**
     * <code>optional string url = 1;</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 METHODS_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList methods_;
    /**
     * <code>repeated string methods = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getMethodsList() {
      return methods_;
    }
    /**
     * <code>repeated string methods = 2;</code>
     */
    public int getMethodsCount() {
      return methods_.size();
    }
    /**
     * <code>repeated string methods = 2;</code>
     */
    public java.lang.String getMethods(int index) {
      return methods_.get(index);
    }
    /**
     * <code>repeated string methods = 2;</code>
     */
    public com.google.protobuf.ByteString
        getMethodsBytes(int index) {
      return methods_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUrlBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, url_);
      }
      for (int i = 0; i < methods_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, methods_.getRaw(i));
      }
    }

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

      size = 0;
      if (!getUrlBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, url_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < methods_.size(); i++) {
          dataSize += computeStringSizeNoTag(methods_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMethodsList().size();
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof coprocess.CoprocessSessionState.AccessSpec)) {
        return super.equals(obj);
      }
      coprocess.CoprocessSessionState.AccessSpec other = (coprocess.CoprocessSessionState.AccessSpec) obj;

      boolean result = true;
      result = result && getUrl()
          .equals(other.getUrl());
      result = result && getMethodsList()
          .equals(other.getMethodsList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + URL_FIELD_NUMBER;
      hash = (53 * hash) + getUrl().hashCode();
      if (getMethodsCount() > 0) {
        hash = (37 * hash) + METHODS_FIELD_NUMBER;
        hash = (53 * hash) + getMethodsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.AccessSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(coprocess.CoprocessSessionState.AccessSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code coprocess.AccessSpec}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:coprocess.AccessSpec)
        coprocess.CoprocessSessionState.AccessSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_AccessSpec_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_AccessSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                coprocess.CoprocessSessionState.AccessSpec.class, coprocess.CoprocessSessionState.AccessSpec.Builder.class);
      }

      // Construct using coprocess.CoprocessSessionState.AccessSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        url_ = "";

        methods_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_AccessSpec_descriptor;
      }

      public coprocess.CoprocessSessionState.AccessSpec getDefaultInstanceForType() {
        return coprocess.CoprocessSessionState.AccessSpec.getDefaultInstance();
      }

      public coprocess.CoprocessSessionState.AccessSpec build() {
        coprocess.CoprocessSessionState.AccessSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public coprocess.CoprocessSessionState.AccessSpec buildPartial() {
        coprocess.CoprocessSessionState.AccessSpec result = new coprocess.CoprocessSessionState.AccessSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.url_ = url_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          methods_ = methods_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.methods_ = methods_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof coprocess.CoprocessSessionState.AccessSpec) {
          return mergeFrom((coprocess.CoprocessSessionState.AccessSpec)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(coprocess.CoprocessSessionState.AccessSpec other) {
        if (other == coprocess.CoprocessSessionState.AccessSpec.getDefaultInstance()) return this;
        if (!other.getUrl().isEmpty()) {
          url_ = other.url_;
          onChanged();
        }
        if (!other.methods_.isEmpty()) {
          if (methods_.isEmpty()) {
            methods_ = other.methods_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureMethodsIsMutable();
            methods_.addAll(other.methods_);
          }
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object url_ = "";
      /**
       * <code>optional string url = 1;</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();
          url_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string url = 1;</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 = 1;</code>
       */
      public Builder setUrl(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        url_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string url = 1;</code>
       */
      public Builder clearUrl() {
        
        url_ = getDefaultInstance().getUrl();
        onChanged();
        return this;
      }
      /**
       * <code>optional string url = 1;</code>
       */
      public Builder setUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        url_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList methods_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureMethodsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          methods_ = new com.google.protobuf.LazyStringArrayList(methods_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getMethodsList() {
        return methods_.getUnmodifiableView();
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public int getMethodsCount() {
        return methods_.size();
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public java.lang.String getMethods(int index) {
        return methods_.get(index);
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public com.google.protobuf.ByteString
          getMethodsBytes(int index) {
        return methods_.getByteString(index);
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public Builder setMethods(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureMethodsIsMutable();
        methods_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public Builder addMethods(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureMethodsIsMutable();
        methods_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public Builder addAllMethods(
          java.lang.Iterable<java.lang.String> values) {
        ensureMethodsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, methods_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public Builder clearMethods() {
        methods_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string methods = 2;</code>
       */
      public Builder addMethodsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureMethodsIsMutable();
        methods_.add(value);
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:coprocess.AccessSpec)
    }

    // @@protoc_insertion_point(class_scope:coprocess.AccessSpec)
    private static final coprocess.CoprocessSessionState.AccessSpec DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new coprocess.CoprocessSessionState.AccessSpec();
    }

    public static coprocess.CoprocessSessionState.AccessSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public coprocess.CoprocessSessionState.AccessSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AccessDefinitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:coprocess.AccessDefinition)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string api_name = 1;</code>
     */
    java.lang.String getApiName();
    /**
     * <code>optional string api_name = 1;</code>
     */
    com.google.protobuf.ByteString
        getApiNameBytes();

    /**
     * <code>optional string api_id = 2;</code>
     */
    java.lang.String getApiId();
    /**
     * <code>optional string api_id = 2;</code>
     */
    com.google.protobuf.ByteString
        getApiIdBytes();

    /**
     * <code>repeated string versions = 3;</code>
     */
    java.util.List<java.lang.String>
        getVersionsList();
    /**
     * <code>repeated string versions = 3;</code>
     */
    int getVersionsCount();
    /**
     * <code>repeated string versions = 3;</code>
     */
    java.lang.String getVersions(int index);
    /**
     * <code>repeated string versions = 3;</code>
     */
    com.google.protobuf.ByteString
        getVersionsBytes(int index);

    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    java.util.List<coprocess.CoprocessSessionState.AccessSpec> 
        getAllowedUrlsList();
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    coprocess.CoprocessSessionState.AccessSpec getAllowedUrls(int index);
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    int getAllowedUrlsCount();
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    java.util.List<? extends coprocess.CoprocessSessionState.AccessSpecOrBuilder> 
        getAllowedUrlsOrBuilderList();
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    coprocess.CoprocessSessionState.AccessSpecOrBuilder getAllowedUrlsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code coprocess.AccessDefinition}
   */
  public  static final class AccessDefinition extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:coprocess.AccessDefinition)
      AccessDefinitionOrBuilder {
    // Use AccessDefinition.newBuilder() to construct.
    private AccessDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AccessDefinition() {
      apiName_ = "";
      apiId_ = "";
      versions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      allowedUrls_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private AccessDefinition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              apiName_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              apiId_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                versions_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              versions_.add(s);
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                allowedUrls_ = new java.util.ArrayList<coprocess.CoprocessSessionState.AccessSpec>();
                mutable_bitField0_ |= 0x00000008;
              }
              allowedUrls_.add(
                  input.readMessage(coprocess.CoprocessSessionState.AccessSpec.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          versions_ = versions_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          allowedUrls_ = java.util.Collections.unmodifiableList(allowedUrls_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_AccessDefinition_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_AccessDefinition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              coprocess.CoprocessSessionState.AccessDefinition.class, coprocess.CoprocessSessionState.AccessDefinition.Builder.class);
    }

    private int bitField0_;
    public static final int API_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object apiName_;
    /**
     * <code>optional string api_name = 1;</code>
     */
    public java.lang.String getApiName() {
      java.lang.Object ref = apiName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        apiName_ = s;
        return s;
      }
    }
    /**
     * <code>optional string api_name = 1;</code>
     */
    public com.google.protobuf.ByteString
        getApiNameBytes() {
      java.lang.Object ref = apiName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        apiName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int API_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object apiId_;
    /**
     * <code>optional string api_id = 2;</code>
     */
    public java.lang.String getApiId() {
      java.lang.Object ref = apiId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        apiId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string api_id = 2;</code>
     */
    public com.google.protobuf.ByteString
        getApiIdBytes() {
      java.lang.Object ref = apiId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        apiId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

    public static final int ALLOWED_URLS_FIELD_NUMBER = 4;
    private java.util.List<coprocess.CoprocessSessionState.AccessSpec> allowedUrls_;
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    public java.util.List<coprocess.CoprocessSessionState.AccessSpec> getAllowedUrlsList() {
      return allowedUrls_;
    }
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    public java.util.List<? extends coprocess.CoprocessSessionState.AccessSpecOrBuilder> 
        getAllowedUrlsOrBuilderList() {
      return allowedUrls_;
    }
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    public int getAllowedUrlsCount() {
      return allowedUrls_.size();
    }
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    public coprocess.CoprocessSessionState.AccessSpec getAllowedUrls(int index) {
      return allowedUrls_.get(index);
    }
    /**
     * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
     */
    public coprocess.CoprocessSessionState.AccessSpecOrBuilder getAllowedUrlsOrBuilder(
        int index) {
      return allowedUrls_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getApiNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, apiName_);
      }
      if (!getApiIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, apiId_);
      }
      for (int i = 0; i < versions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, versions_.getRaw(i));
      }
      for (int i = 0; i < allowedUrls_.size(); i++) {
        output.writeMessage(4, allowedUrls_.get(i));
      }
    }

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

      size = 0;
      if (!getApiNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, apiName_);
      }
      if (!getApiIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, apiId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < versions_.size(); i++) {
          dataSize += computeStringSizeNoTag(versions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getVersionsList().size();
      }
      for (int i = 0; i < allowedUrls_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, allowedUrls_.get(i));
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof coprocess.CoprocessSessionState.AccessDefinition)) {
        return super.equals(obj);
      }
      coprocess.CoprocessSessionState.AccessDefinition other = (coprocess.CoprocessSessionState.AccessDefinition) obj;

      boolean result = true;
      result = result && getApiName()
          .equals(other.getApiName());
      result = result && getApiId()
          .equals(other.getApiId());
      result = result && getVersionsList()
          .equals(other.getVersionsList());
      result = result && getAllowedUrlsList()
          .equals(other.getAllowedUrlsList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + API_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getApiName().hashCode();
      hash = (37 * hash) + API_ID_FIELD_NUMBER;
      hash = (53 * hash) + getApiId().hashCode();
      if (getVersionsCount() > 0) {
        hash = (37 * hash) + VERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getVersionsList().hashCode();
      }
      if (getAllowedUrlsCount() > 0) {
        hash = (37 * hash) + ALLOWED_URLS_FIELD_NUMBER;
        hash = (53 * hash) + getAllowedUrlsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.AccessDefinition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(coprocess.CoprocessSessionState.AccessDefinition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code coprocess.AccessDefinition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:coprocess.AccessDefinition)
        coprocess.CoprocessSessionState.AccessDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_AccessDefinition_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_AccessDefinition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                coprocess.CoprocessSessionState.AccessDefinition.class, coprocess.CoprocessSessionState.AccessDefinition.Builder.class);
      }

      // Construct using coprocess.CoprocessSessionState.AccessDefinition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAllowedUrlsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        apiName_ = "";

        apiId_ = "";

        versions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (allowedUrlsBuilder_ == null) {
          allowedUrls_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          allowedUrlsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_AccessDefinition_descriptor;
      }

      public coprocess.CoprocessSessionState.AccessDefinition getDefaultInstanceForType() {
        return coprocess.CoprocessSessionState.AccessDefinition.getDefaultInstance();
      }

      public coprocess.CoprocessSessionState.AccessDefinition build() {
        coprocess.CoprocessSessionState.AccessDefinition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public coprocess.CoprocessSessionState.AccessDefinition buildPartial() {
        coprocess.CoprocessSessionState.AccessDefinition result = new coprocess.CoprocessSessionState.AccessDefinition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.apiName_ = apiName_;
        result.apiId_ = apiId_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          versions_ = versions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.versions_ = versions_;
        if (allowedUrlsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            allowedUrls_ = java.util.Collections.unmodifiableList(allowedUrls_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.allowedUrls_ = allowedUrls_;
        } else {
          result.allowedUrls_ = allowedUrlsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof coprocess.CoprocessSessionState.AccessDefinition) {
          return mergeFrom((coprocess.CoprocessSessionState.AccessDefinition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(coprocess.CoprocessSessionState.AccessDefinition other) {
        if (other == coprocess.CoprocessSessionState.AccessDefinition.getDefaultInstance()) return this;
        if (!other.getApiName().isEmpty()) {
          apiName_ = other.apiName_;
          onChanged();
        }
        if (!other.getApiId().isEmpty()) {
          apiId_ = other.apiId_;
          onChanged();
        }
        if (!other.versions_.isEmpty()) {
          if (versions_.isEmpty()) {
            versions_ = other.versions_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureVersionsIsMutable();
            versions_.addAll(other.versions_);
          }
          onChanged();
        }
        if (allowedUrlsBuilder_ == null) {
          if (!other.allowedUrls_.isEmpty()) {
            if (allowedUrls_.isEmpty()) {
              allowedUrls_ = other.allowedUrls_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureAllowedUrlsIsMutable();
              allowedUrls_.addAll(other.allowedUrls_);
            }
            onChanged();
          }
        } else {
          if (!other.allowedUrls_.isEmpty()) {
            if (allowedUrlsBuilder_.isEmpty()) {
              allowedUrlsBuilder_.dispose();
              allowedUrlsBuilder_ = null;
              allowedUrls_ = other.allowedUrls_;
              bitField0_ = (bitField0_ & ~0x00000008);
              allowedUrlsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAllowedUrlsFieldBuilder() : null;
            } else {
              allowedUrlsBuilder_.addAllMessages(other.allowedUrls_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object apiName_ = "";
      /**
       * <code>optional string api_name = 1;</code>
       */
      public java.lang.String getApiName() {
        java.lang.Object ref = apiName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          apiName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string api_name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getApiNameBytes() {
        java.lang.Object ref = apiName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          apiName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string api_name = 1;</code>
       */
      public Builder setApiName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        apiName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string api_name = 1;</code>
       */
      public Builder clearApiName() {
        
        apiName_ = getDefaultInstance().getApiName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string api_name = 1;</code>
       */
      public Builder setApiNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        apiName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object apiId_ = "";
      /**
       * <code>optional string api_id = 2;</code>
       */
      public java.lang.String getApiId() {
        java.lang.Object ref = apiId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          apiId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string api_id = 2;</code>
       */
      public com.google.protobuf.ByteString
          getApiIdBytes() {
        java.lang.Object ref = apiId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          apiId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string api_id = 2;</code>
       */
      public Builder setApiId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        apiId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string api_id = 2;</code>
       */
      public Builder clearApiId() {
        
        apiId_ = getDefaultInstance().getApiId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string api_id = 2;</code>
       */
      public Builder setApiIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        apiId_ = value;
        onChanged();
        return this;
      }

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

      private java.util.List<coprocess.CoprocessSessionState.AccessSpec> allowedUrls_ =
        java.util.Collections.emptyList();
      private void ensureAllowedUrlsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          allowedUrls_ = new java.util.ArrayList<coprocess.CoprocessSessionState.AccessSpec>(allowedUrls_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          coprocess.CoprocessSessionState.AccessSpec, coprocess.CoprocessSessionState.AccessSpec.Builder, coprocess.CoprocessSessionState.AccessSpecOrBuilder> allowedUrlsBuilder_;

      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public java.util.List<coprocess.CoprocessSessionState.AccessSpec> getAllowedUrlsList() {
        if (allowedUrlsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(allowedUrls_);
        } else {
          return allowedUrlsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public int getAllowedUrlsCount() {
        if (allowedUrlsBuilder_ == null) {
          return allowedUrls_.size();
        } else {
          return allowedUrlsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public coprocess.CoprocessSessionState.AccessSpec getAllowedUrls(int index) {
        if (allowedUrlsBuilder_ == null) {
          return allowedUrls_.get(index);
        } else {
          return allowedUrlsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder setAllowedUrls(
          int index, coprocess.CoprocessSessionState.AccessSpec value) {
        if (allowedUrlsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAllowedUrlsIsMutable();
          allowedUrls_.set(index, value);
          onChanged();
        } else {
          allowedUrlsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder setAllowedUrls(
          int index, coprocess.CoprocessSessionState.AccessSpec.Builder builderForValue) {
        if (allowedUrlsBuilder_ == null) {
          ensureAllowedUrlsIsMutable();
          allowedUrls_.set(index, builderForValue.build());
          onChanged();
        } else {
          allowedUrlsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder addAllowedUrls(coprocess.CoprocessSessionState.AccessSpec value) {
        if (allowedUrlsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAllowedUrlsIsMutable();
          allowedUrls_.add(value);
          onChanged();
        } else {
          allowedUrlsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder addAllowedUrls(
          int index, coprocess.CoprocessSessionState.AccessSpec value) {
        if (allowedUrlsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAllowedUrlsIsMutable();
          allowedUrls_.add(index, value);
          onChanged();
        } else {
          allowedUrlsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder addAllowedUrls(
          coprocess.CoprocessSessionState.AccessSpec.Builder builderForValue) {
        if (allowedUrlsBuilder_ == null) {
          ensureAllowedUrlsIsMutable();
          allowedUrls_.add(builderForValue.build());
          onChanged();
        } else {
          allowedUrlsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder addAllowedUrls(
          int index, coprocess.CoprocessSessionState.AccessSpec.Builder builderForValue) {
        if (allowedUrlsBuilder_ == null) {
          ensureAllowedUrlsIsMutable();
          allowedUrls_.add(index, builderForValue.build());
          onChanged();
        } else {
          allowedUrlsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder addAllAllowedUrls(
          java.lang.Iterable<? extends coprocess.CoprocessSessionState.AccessSpec> values) {
        if (allowedUrlsBuilder_ == null) {
          ensureAllowedUrlsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, allowedUrls_);
          onChanged();
        } else {
          allowedUrlsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder clearAllowedUrls() {
        if (allowedUrlsBuilder_ == null) {
          allowedUrls_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          allowedUrlsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public Builder removeAllowedUrls(int index) {
        if (allowedUrlsBuilder_ == null) {
          ensureAllowedUrlsIsMutable();
          allowedUrls_.remove(index);
          onChanged();
        } else {
          allowedUrlsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public coprocess.CoprocessSessionState.AccessSpec.Builder getAllowedUrlsBuilder(
          int index) {
        return getAllowedUrlsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public coprocess.CoprocessSessionState.AccessSpecOrBuilder getAllowedUrlsOrBuilder(
          int index) {
        if (allowedUrlsBuilder_ == null) {
          return allowedUrls_.get(index);  } else {
          return allowedUrlsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public java.util.List<? extends coprocess.CoprocessSessionState.AccessSpecOrBuilder> 
           getAllowedUrlsOrBuilderList() {
        if (allowedUrlsBuilder_ != null) {
          return allowedUrlsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(allowedUrls_);
        }
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public coprocess.CoprocessSessionState.AccessSpec.Builder addAllowedUrlsBuilder() {
        return getAllowedUrlsFieldBuilder().addBuilder(
            coprocess.CoprocessSessionState.AccessSpec.getDefaultInstance());
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public coprocess.CoprocessSessionState.AccessSpec.Builder addAllowedUrlsBuilder(
          int index) {
        return getAllowedUrlsFieldBuilder().addBuilder(
            index, coprocess.CoprocessSessionState.AccessSpec.getDefaultInstance());
      }
      /**
       * <code>repeated .coprocess.AccessSpec allowed_urls = 4;</code>
       */
      public java.util.List<coprocess.CoprocessSessionState.AccessSpec.Builder> 
           getAllowedUrlsBuilderList() {
        return getAllowedUrlsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          coprocess.CoprocessSessionState.AccessSpec, coprocess.CoprocessSessionState.AccessSpec.Builder, coprocess.CoprocessSessionState.AccessSpecOrBuilder> 
          getAllowedUrlsFieldBuilder() {
        if (allowedUrlsBuilder_ == null) {
          allowedUrlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              coprocess.CoprocessSessionState.AccessSpec, coprocess.CoprocessSessionState.AccessSpec.Builder, coprocess.CoprocessSessionState.AccessSpecOrBuilder>(
                  allowedUrls_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          allowedUrls_ = null;
        }
        return allowedUrlsBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:coprocess.AccessDefinition)
    }

    // @@protoc_insertion_point(class_scope:coprocess.AccessDefinition)
    private static final coprocess.CoprocessSessionState.AccessDefinition DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new coprocess.CoprocessSessionState.AccessDefinition();
    }

    public static coprocess.CoprocessSessionState.AccessDefinition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public coprocess.CoprocessSessionState.AccessDefinition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BasicAuthDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:coprocess.BasicAuthData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string password = 1;</code>
     */
    java.lang.String getPassword();
    /**
     * <code>optional string password = 1;</code>
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <code>optional string hash = 2;</code>
     */
    java.lang.String getHash();
    /**
     * <code>optional string hash = 2;</code>
     */
    com.google.protobuf.ByteString
        getHashBytes();
  }
  /**
   * Protobuf type {@code coprocess.BasicAuthData}
   */
  public  static final class BasicAuthData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:coprocess.BasicAuthData)
      BasicAuthDataOrBuilder {
    // Use BasicAuthData.newBuilder() to construct.
    private BasicAuthData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BasicAuthData() {
      password_ = "";
      hash_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private BasicAuthData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              password_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              hash_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_BasicAuthData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_BasicAuthData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              coprocess.CoprocessSessionState.BasicAuthData.class, coprocess.CoprocessSessionState.BasicAuthData.Builder.class);
    }

    public static final int PASSWORD_FIELD_NUMBER = 1;
    private volatile java.lang.Object password_;
    /**
     * <code>optional string password = 1;</code>
     */
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * <code>optional string password = 1;</code>
     */
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HASH_FIELD_NUMBER = 2;
    private volatile java.lang.Object hash_;
    /**
     * <code>optional string hash = 2;</code>
     */
    public java.lang.String getHash() {
      java.lang.Object ref = hash_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        hash_ = s;
        return s;
      }
    }
    /**
     * <code>optional string hash = 2;</code>
     */
    public com.google.protobuf.ByteString
        getHashBytes() {
      java.lang.Object ref = hash_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hash_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getPasswordBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, password_);
      }
      if (!getHashBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hash_);
      }
    }

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

      size = 0;
      if (!getPasswordBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, password_);
      }
      if (!getHashBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, hash_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof coprocess.CoprocessSessionState.BasicAuthData)) {
        return super.equals(obj);
      }
      coprocess.CoprocessSessionState.BasicAuthData other = (coprocess.CoprocessSessionState.BasicAuthData) obj;

      boolean result = true;
      result = result && getPassword()
          .equals(other.getPassword());
      result = result && getHash()
          .equals(other.getHash());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (37 * hash) + HASH_FIELD_NUMBER;
      hash = (53 * hash) + getHash().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.BasicAuthData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(coprocess.CoprocessSessionState.BasicAuthData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code coprocess.BasicAuthData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:coprocess.BasicAuthData)
        coprocess.CoprocessSessionState.BasicAuthDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_BasicAuthData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_BasicAuthData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                coprocess.CoprocessSessionState.BasicAuthData.class, coprocess.CoprocessSessionState.BasicAuthData.Builder.class);
      }

      // Construct using coprocess.CoprocessSessionState.BasicAuthData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        password_ = "";

        hash_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_BasicAuthData_descriptor;
      }

      public coprocess.CoprocessSessionState.BasicAuthData getDefaultInstanceForType() {
        return coprocess.CoprocessSessionState.BasicAuthData.getDefaultInstance();
      }

      public coprocess.CoprocessSessionState.BasicAuthData build() {
        coprocess.CoprocessSessionState.BasicAuthData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public coprocess.CoprocessSessionState.BasicAuthData buildPartial() {
        coprocess.CoprocessSessionState.BasicAuthData result = new coprocess.CoprocessSessionState.BasicAuthData(this);
        result.password_ = password_;
        result.hash_ = hash_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof coprocess.CoprocessSessionState.BasicAuthData) {
          return mergeFrom((coprocess.CoprocessSessionState.BasicAuthData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(coprocess.CoprocessSessionState.BasicAuthData other) {
        if (other == coprocess.CoprocessSessionState.BasicAuthData.getDefaultInstance()) return this;
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          onChanged();
        }
        if (!other.getHash().isEmpty()) {
          hash_ = other.hash_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        coprocess.CoprocessSessionState.BasicAuthData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (coprocess.CoprocessSessionState.BasicAuthData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <code>optional string password = 1;</code>
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string password = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string password = 1;</code>
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        password_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string password = 1;</code>
       */
      public Builder clearPassword() {
        
        password_ = getDefaultInstance().getPassword();
        onChanged();
        return this;
      }
      /**
       * <code>optional string password = 1;</code>
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        password_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hash_ = "";
      /**
       * <code>optional string hash = 2;</code>
       */
      public java.lang.String getHash() {
        java.lang.Object ref = hash_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hash_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string hash = 2;</code>
       */
      public com.google.protobuf.ByteString
          getHashBytes() {
        java.lang.Object ref = hash_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hash_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string hash = 2;</code>
       */
      public Builder setHash(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hash_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string hash = 2;</code>
       */
      public Builder clearHash() {
        
        hash_ = getDefaultInstance().getHash();
        onChanged();
        return this;
      }
      /**
       * <code>optional string hash = 2;</code>
       */
      public Builder setHashBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hash_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:coprocess.BasicAuthData)
    }

    // @@protoc_insertion_point(class_scope:coprocess.BasicAuthData)
    private static final coprocess.CoprocessSessionState.BasicAuthData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new coprocess.CoprocessSessionState.BasicAuthData();
    }

    public static coprocess.CoprocessSessionState.BasicAuthData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public coprocess.CoprocessSessionState.BasicAuthData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JWTDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:coprocess.JWTData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string secret = 1;</code>
     */
    java.lang.String getSecret();
    /**
     * <code>optional string secret = 1;</code>
     */
    com.google.protobuf.ByteString
        getSecretBytes();
  }
  /**
   * Protobuf type {@code coprocess.JWTData}
   */
  public  static final class JWTData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:coprocess.JWTData)
      JWTDataOrBuilder {
    // Use JWTData.newBuilder() to construct.
    private JWTData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JWTData() {
      secret_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private JWTData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              secret_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_JWTData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_JWTData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              coprocess.CoprocessSessionState.JWTData.class, coprocess.CoprocessSessionState.JWTData.Builder.class);
    }

    public static final int SECRET_FIELD_NUMBER = 1;
    private volatile java.lang.Object secret_;
    /**
     * <code>optional string secret = 1;</code>
     */
    public java.lang.String getSecret() {
      java.lang.Object ref = secret_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        secret_ = s;
        return s;
      }
    }
    /**
     * <code>optional string secret = 1;</code>
     */
    public com.google.protobuf.ByteString
        getSecretBytes() {
      java.lang.Object ref = secret_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        secret_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getSecretBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, secret_);
      }
    }

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

      size = 0;
      if (!getSecretBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, secret_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof coprocess.CoprocessSessionState.JWTData)) {
        return super.equals(obj);
      }
      coprocess.CoprocessSessionState.JWTData other = (coprocess.CoprocessSessionState.JWTData) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + SECRET_FIELD_NUMBER;
      hash = (53 * hash) + getSecret().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static coprocess.CoprocessSessionState.JWTData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.JWTData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.JWTData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.JWTData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(coprocess.CoprocessSessionState.JWTData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code coprocess.JWTData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:coprocess.JWTData)
        coprocess.CoprocessSessionState.JWTDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_JWTData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_JWTData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                coprocess.CoprocessSessionState.JWTData.class, coprocess.CoprocessSessionState.JWTData.Builder.class);
      }

      // Construct using coprocess.CoprocessSessionState.JWTData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        secret_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_JWTData_descriptor;
      }

      public coprocess.CoprocessSessionState.JWTData getDefaultInstanceForType() {
        return coprocess.CoprocessSessionState.JWTData.getDefaultInstance();
      }

      public coprocess.CoprocessSessionState.JWTData build() {
        coprocess.CoprocessSessionState.JWTData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public coprocess.CoprocessSessionState.JWTData buildPartial() {
        coprocess.CoprocessSessionState.JWTData result = new coprocess.CoprocessSessionState.JWTData(this);
        result.secret_ = secret_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof coprocess.CoprocessSessionState.JWTData) {
          return mergeFrom((coprocess.CoprocessSessionState.JWTData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(coprocess.CoprocessSessionState.JWTData other) {
        if (other == coprocess.CoprocessSessionState.JWTData.getDefaultInstance()) return this;
        if (!other.getSecret().isEmpty()) {
          secret_ = other.secret_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        coprocess.CoprocessSessionState.JWTData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (coprocess.CoprocessSessionState.JWTData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object secret_ = "";
      /**
       * <code>optional string secret = 1;</code>
       */
      public java.lang.String getSecret() {
        java.lang.Object ref = secret_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          secret_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string secret = 1;</code>
       */
      public com.google.protobuf.ByteString
          getSecretBytes() {
        java.lang.Object ref = secret_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          secret_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string secret = 1;</code>
       */
      public Builder setSecret(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        secret_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string secret = 1;</code>
       */
      public Builder clearSecret() {
        
        secret_ = getDefaultInstance().getSecret();
        onChanged();
        return this;
      }
      /**
       * <code>optional string secret = 1;</code>
       */
      public Builder setSecretBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        secret_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:coprocess.JWTData)
    }

    // @@protoc_insertion_point(class_scope:coprocess.JWTData)
    private static final coprocess.CoprocessSessionState.JWTData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new coprocess.CoprocessSessionState.JWTData();
    }

    public static coprocess.CoprocessSessionState.JWTData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public coprocess.CoprocessSessionState.JWTData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MonitorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:coprocess.Monitor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated double trigger_limits = 1;</code>
     */
    java.util.List<java.lang.Double> getTriggerLimitsList();
    /**
     * <code>repeated double trigger_limits = 1;</code>
     */
    int getTriggerLimitsCount();
    /**
     * <code>repeated double trigger_limits = 1;</code>
     */
    double getTriggerLimits(int index);
  }
  /**
   * Protobuf type {@code coprocess.Monitor}
   */
  public  static final class Monitor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:coprocess.Monitor)
      MonitorOrBuilder {
    // Use Monitor.newBuilder() to construct.
    private Monitor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Monitor() {
      triggerLimits_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private Monitor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 9: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                triggerLimits_ = new java.util.ArrayList<java.lang.Double>();
                mutable_bitField0_ |= 0x00000001;
              }
              triggerLimits_.add(input.readDouble());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                triggerLimits_ = new java.util.ArrayList<java.lang.Double>();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                triggerLimits_.add(input.readDouble());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          triggerLimits_ = java.util.Collections.unmodifiableList(triggerLimits_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_Monitor_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_Monitor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              coprocess.CoprocessSessionState.Monitor.class, coprocess.CoprocessSessionState.Monitor.Builder.class);
    }

    public static final int TRIGGER_LIMITS_FIELD_NUMBER = 1;
    private java.util.List<java.lang.Double> triggerLimits_;
    /**
     * <code>repeated double trigger_limits = 1;</code>
     */
    public java.util.List<java.lang.Double>
        getTriggerLimitsList() {
      return triggerLimits_;
    }
    /**
     * <code>repeated double trigger_limits = 1;</code>
     */
    public int getTriggerLimitsCount() {
      return triggerLimits_.size();
    }
    /**
     * <code>repeated double trigger_limits = 1;</code>
     */
    public double getTriggerLimits(int index) {
      return triggerLimits_.get(index);
    }
    private int triggerLimitsMemoizedSerializedSize = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getTriggerLimitsList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(triggerLimitsMemoizedSerializedSize);
      }
      for (int i = 0; i < triggerLimits_.size(); i++) {
        output.writeDoubleNoTag(triggerLimits_.get(i));
      }
    }

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

      size = 0;
      {
        int dataSize = 0;
        dataSize = 8 * getTriggerLimitsList().size();
        size += dataSize;
        if (!getTriggerLimitsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        triggerLimitsMemoizedSerializedSize = dataSize;
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof coprocess.CoprocessSessionState.Monitor)) {
        return super.equals(obj);
      }
      coprocess.CoprocessSessionState.Monitor other = (coprocess.CoprocessSessionState.Monitor) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getTriggerLimitsCount() > 0) {
        hash = (37 * hash) + TRIGGER_LIMITS_FIELD_NUMBER;
        hash = (53 * hash) + getTriggerLimitsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static coprocess.CoprocessSessionState.Monitor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.Monitor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.Monitor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.Monitor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(coprocess.CoprocessSessionState.Monitor prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code coprocess.Monitor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:coprocess.Monitor)
        coprocess.CoprocessSessionState.MonitorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_Monitor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_Monitor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                coprocess.CoprocessSessionState.Monitor.class, coprocess.CoprocessSessionState.Monitor.Builder.class);
      }

      // Construct using coprocess.CoprocessSessionState.Monitor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_Monitor_descriptor;
      }

      public coprocess.CoprocessSessionState.Monitor getDefaultInstanceForType() {
        return coprocess.CoprocessSessionState.Monitor.getDefaultInstance();
      }

      public coprocess.CoprocessSessionState.Monitor build() {
        coprocess.CoprocessSessionState.Monitor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public coprocess.CoprocessSessionState.Monitor buildPartial() {
        coprocess.CoprocessSessionState.Monitor result = new coprocess.CoprocessSessionState.Monitor(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          triggerLimits_ = java.util.Collections.unmodifiableList(triggerLimits_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.triggerLimits_ = triggerLimits_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof coprocess.CoprocessSessionState.Monitor) {
          return mergeFrom((coprocess.CoprocessSessionState.Monitor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(coprocess.CoprocessSessionState.Monitor other) {
        if (other == coprocess.CoprocessSessionState.Monitor.getDefaultInstance()) return this;
        if (!other.triggerLimits_.isEmpty()) {
          if (triggerLimits_.isEmpty()) {
            triggerLimits_ = other.triggerLimits_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureTriggerLimitsIsMutable();
            triggerLimits_.addAll(other.triggerLimits_);
          }
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<java.lang.Double> triggerLimits_ = java.util.Collections.emptyList();
      private void ensureTriggerLimitsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          triggerLimits_ = new java.util.ArrayList<java.lang.Double>(triggerLimits_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public java.util.List<java.lang.Double>
          getTriggerLimitsList() {
        return java.util.Collections.unmodifiableList(triggerLimits_);
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public int getTriggerLimitsCount() {
        return triggerLimits_.size();
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public double getTriggerLimits(int index) {
        return triggerLimits_.get(index);
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public Builder setTriggerLimits(
          int index, double value) {
        ensureTriggerLimitsIsMutable();
        triggerLimits_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public Builder addTriggerLimits(double value) {
        ensureTriggerLimitsIsMutable();
        triggerLimits_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public Builder addAllTriggerLimits(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureTriggerLimitsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, triggerLimits_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double trigger_limits = 1;</code>
       */
      public Builder clearTriggerLimits() {
        triggerLimits_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:coprocess.Monitor)
    }

    // @@protoc_insertion_point(class_scope:coprocess.Monitor)
    private static final coprocess.CoprocessSessionState.Monitor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new coprocess.CoprocessSessionState.Monitor();
    }

    public static coprocess.CoprocessSessionState.Monitor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public coprocess.CoprocessSessionState.Monitor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SessionStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:coprocess.SessionState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int64 last_check = 1;</code>
     */
    long getLastCheck();

    /**
     * <code>optional double allowance = 2;</code>
     */
    double getAllowance();

    /**
     * <code>optional double rate = 3;</code>
     */
    double getRate();

    /**
     * <code>optional double per = 4;</code>
     */
    double getPer();

    /**
     * <code>optional int64 expires = 5;</code>
     */
    long getExpires();

    /**
     * <code>optional int64 quota_max = 6;</code>
     */
    long getQuotaMax();

    /**
     * <code>optional int64 quota_renews = 7;</code>
     */
    long getQuotaRenews();

    /**
     * <code>optional int64 quota_remaining = 8;</code>
     */
    long getQuotaRemaining();

    /**
     * <code>optional int64 quota_renewal_rate = 9;</code>
     */
    long getQuotaRenewalRate();

    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */
    int getAccessRightsCount();
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */
    boolean containsAccessRights(
        java.lang.String key);
    /**
     * Use {@link #getAccessRightsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
    getAccessRights();
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */
    java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
    getAccessRightsMap();
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */

    coprocess.CoprocessSessionState.AccessDefinition getAccessRightsOrDefault(
        java.lang.String key,
        coprocess.CoprocessSessionState.AccessDefinition defaultValue);
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */

    coprocess.CoprocessSessionState.AccessDefinition getAccessRightsOrThrow(
        java.lang.String key);

    /**
     * <code>optional string org_id = 11;</code>
     */
    java.lang.String getOrgId();
    /**
     * <code>optional string org_id = 11;</code>
     */
    com.google.protobuf.ByteString
        getOrgIdBytes();

    /**
     * <code>optional string oauth_client_id = 12;</code>
     */
    java.lang.String getOauthClientId();
    /**
     * <code>optional string oauth_client_id = 12;</code>
     */
    com.google.protobuf.ByteString
        getOauthClientIdBytes();

    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */
    int getOauthKeysCount();
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */
    boolean containsOauthKeys(
        java.lang.String key);
    /**
     * Use {@link #getOauthKeysMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getOauthKeys();
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getOauthKeysMap();
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */

    java.lang.String getOauthKeysOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */

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

    /**
     * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
     */
    boolean hasBasicAuthData();
    /**
     * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
     */
    coprocess.CoprocessSessionState.BasicAuthData getBasicAuthData();
    /**
     * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
     */
    coprocess.CoprocessSessionState.BasicAuthDataOrBuilder getBasicAuthDataOrBuilder();

    /**
     * <code>optional .coprocess.JWTData jwt_data = 15;</code>
     */
    boolean hasJwtData();
    /**
     * <code>optional .coprocess.JWTData jwt_data = 15;</code>
     */
    coprocess.CoprocessSessionState.JWTData getJwtData();
    /**
     * <code>optional .coprocess.JWTData jwt_data = 15;</code>
     */
    coprocess.CoprocessSessionState.JWTDataOrBuilder getJwtDataOrBuilder();

    /**
     * <code>optional bool hmac_enabled = 16;</code>
     */
    boolean getHmacEnabled();

    /**
     * <code>optional string hmac_secret = 17;</code>
     */
    java.lang.String getHmacSecret();
    /**
     * <code>optional string hmac_secret = 17;</code>
     */
    com.google.protobuf.ByteString
        getHmacSecretBytes();

    /**
     * <code>optional bool is_inactive = 18;</code>
     */
    boolean getIsInactive();

    /**
     * <code>optional string apply_policy_id = 19;</code>
     */
    java.lang.String getApplyPolicyId();
    /**
     * <code>optional string apply_policy_id = 19;</code>
     */
    com.google.protobuf.ByteString
        getApplyPolicyIdBytes();

    /**
     * <code>optional int64 data_expires = 20;</code>
     */
    long getDataExpires();

    /**
     * <code>optional .coprocess.Monitor monitor = 21;</code>
     */
    boolean hasMonitor();
    /**
     * <code>optional .coprocess.Monitor monitor = 21;</code>
     */
    coprocess.CoprocessSessionState.Monitor getMonitor();
    /**
     * <code>optional .coprocess.Monitor monitor = 21;</code>
     */
    coprocess.CoprocessSessionState.MonitorOrBuilder getMonitorOrBuilder();

    /**
     * <code>optional bool enable_detailed_recording = 22;</code>
     */
    boolean getEnableDetailedRecording();

    /**
     * <code>optional string metadata = 23;</code>
     */
    java.lang.String getMetadata();
    /**
     * <code>optional string metadata = 23;</code>
     */
    com.google.protobuf.ByteString
        getMetadataBytes();

    /**
     * <code>repeated string tags = 24;</code>
     */
    java.util.List<java.lang.String>
        getTagsList();
    /**
     * <code>repeated string tags = 24;</code>
     */
    int getTagsCount();
    /**
     * <code>repeated string tags = 24;</code>
     */
    java.lang.String getTags(int index);
    /**
     * <code>repeated string tags = 24;</code>
     */
    com.google.protobuf.ByteString
        getTagsBytes(int index);

    /**
     * <code>optional string alias = 25;</code>
     */
    java.lang.String getAlias();
    /**
     * <code>optional string alias = 25;</code>
     */
    com.google.protobuf.ByteString
        getAliasBytes();

    /**
     * <code>optional string last_updated = 26;</code>
     */
    java.lang.String getLastUpdated();
    /**
     * <code>optional string last_updated = 26;</code>
     */
    com.google.protobuf.ByteString
        getLastUpdatedBytes();

    /**
     * <code>optional int64 id_extractor_deadline = 27;</code>
     */
    long getIdExtractorDeadline();

    /**
     * <code>optional int64 session_lifetime = 28;</code>
     */
    long getSessionLifetime();
  }
  /**
   * Protobuf type {@code coprocess.SessionState}
   */
  public  static final class SessionState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:coprocess.SessionState)
      SessionStateOrBuilder {
    // Use SessionState.newBuilder() to construct.
    private SessionState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SessionState() {
      lastCheck_ = 0L;
      allowance_ = 0D;
      rate_ = 0D;
      per_ = 0D;
      expires_ = 0L;
      quotaMax_ = 0L;
      quotaRenews_ = 0L;
      quotaRemaining_ = 0L;
      quotaRenewalRate_ = 0L;
      orgId_ = "";
      oauthClientId_ = "";
      hmacEnabled_ = false;
      hmacSecret_ = "";
      isInactive_ = false;
      applyPolicyId_ = "";
      dataExpires_ = 0L;
      enableDetailedRecording_ = false;
      metadata_ = "";
      tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      alias_ = "";
      lastUpdated_ = "";
      idExtractorDeadline_ = 0L;
      sessionLifetime_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private SessionState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              lastCheck_ = input.readInt64();
              break;
            }
            case 17: {

              allowance_ = input.readDouble();
              break;
            }
            case 25: {

              rate_ = input.readDouble();
              break;
            }
            case 33: {

              per_ = input.readDouble();
              break;
            }
            case 40: {

              expires_ = input.readInt64();
              break;
            }
            case 48: {

              quotaMax_ = input.readInt64();
              break;
            }
            case 56: {

              quotaRenews_ = input.readInt64();
              break;
            }
            case 64: {

              quotaRemaining_ = input.readInt64();
              break;
            }
            case 72: {

              quotaRenewalRate_ = input.readInt64();
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                accessRights_ = com.google.protobuf.MapField.newMapField(
                    AccessRightsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000200;
              }
              com.google.protobuf.MapEntry<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
              accessRights__ = input.readMessage(
                  AccessRightsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              accessRights_.getMutableMap().put(
                  accessRights__.getKey(), accessRights__.getValue());
              break;
            }
            case 90: {
              java.lang.String s = input.readStringRequireUtf8();

              orgId_ = s;
              break;
            }
            case 98: {
              java.lang.String s = input.readStringRequireUtf8();

              oauthClientId_ = s;
              break;
            }
            case 106: {
              if (!((mutable_bitField0_ & 0x00001000) == 0x00001000)) {
                oauthKeys_ = com.google.protobuf.MapField.newMapField(
                    OauthKeysDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00001000;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              oauthKeys__ = input.readMessage(
                  OauthKeysDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              oauthKeys_.getMutableMap().put(
                  oauthKeys__.getKey(), oauthKeys__.getValue());
              break;
            }
            case 114: {
              coprocess.CoprocessSessionState.BasicAuthData.Builder subBuilder = null;
              if (basicAuthData_ != null) {
                subBuilder = basicAuthData_.toBuilder();
              }
              basicAuthData_ = input.readMessage(coprocess.CoprocessSessionState.BasicAuthData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(basicAuthData_);
                basicAuthData_ = subBuilder.buildPartial();
              }

              break;
            }
            case 122: {
              coprocess.CoprocessSessionState.JWTData.Builder subBuilder = null;
              if (jwtData_ != null) {
                subBuilder = jwtData_.toBuilder();
              }
              jwtData_ = input.readMessage(coprocess.CoprocessSessionState.JWTData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(jwtData_);
                jwtData_ = subBuilder.buildPartial();
              }

              break;
            }
            case 128: {

              hmacEnabled_ = input.readBool();
              break;
            }
            case 138: {
              java.lang.String s = input.readStringRequireUtf8();

              hmacSecret_ = s;
              break;
            }
            case 144: {

              isInactive_ = input.readBool();
              break;
            }
            case 154: {
              java.lang.String s = input.readStringRequireUtf8();

              applyPolicyId_ = s;
              break;
            }
            case 160: {

              dataExpires_ = input.readInt64();
              break;
            }
            case 170: {
              coprocess.CoprocessSessionState.Monitor.Builder subBuilder = null;
              if (monitor_ != null) {
                subBuilder = monitor_.toBuilder();
              }
              monitor_ = input.readMessage(coprocess.CoprocessSessionState.Monitor.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(monitor_);
                monitor_ = subBuilder.buildPartial();
              }

              break;
            }
            case 176: {

              enableDetailedRecording_ = input.readBool();
              break;
            }
            case 186: {
              java.lang.String s = input.readStringRequireUtf8();

              metadata_ = s;
              break;
            }
            case 194: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00800000) == 0x00800000)) {
                tags_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00800000;
              }
              tags_.add(s);
              break;
            }
            case 202: {
              java.lang.String s = input.readStringRequireUtf8();

              alias_ = s;
              break;
            }
            case 210: {
              java.lang.String s = input.readStringRequireUtf8();

              lastUpdated_ = s;
              break;
            }
            case 216: {

              idExtractorDeadline_ = input.readInt64();
              break;
            }
            case 224: {

              sessionLifetime_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00800000) == 0x00800000)) {
          tags_ = tags_.getUnmodifiableView();
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 10:
          return internalGetAccessRights();
        case 13:
          return internalGetOauthKeys();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              coprocess.CoprocessSessionState.SessionState.class, coprocess.CoprocessSessionState.SessionState.Builder.class);
    }

    private int bitField0_;
    public static final int LAST_CHECK_FIELD_NUMBER = 1;
    private long lastCheck_;
    /**
     * <code>optional int64 last_check = 1;</code>
     */
    public long getLastCheck() {
      return lastCheck_;
    }

    public static final int ALLOWANCE_FIELD_NUMBER = 2;
    private double allowance_;
    /**
     * <code>optional double allowance = 2;</code>
     */
    public double getAllowance() {
      return allowance_;
    }

    public static final int RATE_FIELD_NUMBER = 3;
    private double rate_;
    /**
     * <code>optional double rate = 3;</code>
     */
    public double getRate() {
      return rate_;
    }

    public static final int PER_FIELD_NUMBER = 4;
    private double per_;
    /**
     * <code>optional double per = 4;</code>
     */
    public double getPer() {
      return per_;
    }

    public static final int EXPIRES_FIELD_NUMBER = 5;
    private long expires_;
    /**
     * <code>optional int64 expires = 5;</code>
     */
    public long getExpires() {
      return expires_;
    }

    public static final int QUOTA_MAX_FIELD_NUMBER = 6;
    private long quotaMax_;
    /**
     * <code>optional int64 quota_max = 6;</code>
     */
    public long getQuotaMax() {
      return quotaMax_;
    }

    public static final int QUOTA_RENEWS_FIELD_NUMBER = 7;
    private long quotaRenews_;
    /**
     * <code>optional int64 quota_renews = 7;</code>
     */
    public long getQuotaRenews() {
      return quotaRenews_;
    }

    public static final int QUOTA_REMAINING_FIELD_NUMBER = 8;
    private long quotaRemaining_;
    /**
     * <code>optional int64 quota_remaining = 8;</code>
     */
    public long getQuotaRemaining() {
      return quotaRemaining_;
    }

    public static final int QUOTA_RENEWAL_RATE_FIELD_NUMBER = 9;
    private long quotaRenewalRate_;
    /**
     * <code>optional int64 quota_renewal_rate = 9;</code>
     */
    public long getQuotaRenewalRate() {
      return quotaRenewalRate_;
    }

    public static final int ACCESS_RIGHTS_FIELD_NUMBER = 10;
    private static final class AccessRightsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>newDefaultInstance(
                  coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_AccessRightsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  coprocess.CoprocessSessionState.AccessDefinition.getDefaultInstance());
    }
    private com.google.protobuf.MapField<
        java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> accessRights_;
    private com.google.protobuf.MapField<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
    internalGetAccessRights() {
      if (accessRights_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AccessRightsDefaultEntryHolder.defaultEntry);
      }
      return accessRights_;
    }

    public int getAccessRightsCount() {
      return internalGetAccessRights().getMap().size();
    }
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */

    public boolean containsAccessRights(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAccessRights().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAccessRightsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> getAccessRights() {
      return getAccessRightsMap();
    }
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */

    public java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> getAccessRightsMap() {
      return internalGetAccessRights().getMap();
    }
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */

    public coprocess.CoprocessSessionState.AccessDefinition getAccessRightsOrDefault(
        java.lang.String key,
        coprocess.CoprocessSessionState.AccessDefinition defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> map =
          internalGetAccessRights().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
     */

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

    public static final int ORG_ID_FIELD_NUMBER = 11;
    private volatile java.lang.Object orgId_;
    /**
     * <code>optional string org_id = 11;</code>
     */
    public java.lang.String getOrgId() {
      java.lang.Object ref = orgId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        orgId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string org_id = 11;</code>
     */
    public com.google.protobuf.ByteString
        getOrgIdBytes() {
      java.lang.Object ref = orgId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orgId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OAUTH_CLIENT_ID_FIELD_NUMBER = 12;
    private volatile java.lang.Object oauthClientId_;
    /**
     * <code>optional string oauth_client_id = 12;</code>
     */
    public java.lang.String getOauthClientId() {
      java.lang.Object ref = oauthClientId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        oauthClientId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string oauth_client_id = 12;</code>
     */
    public com.google.protobuf.ByteString
        getOauthClientIdBytes() {
      java.lang.Object ref = oauthClientId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        oauthClientId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OAUTH_KEYS_FIELD_NUMBER = 13;
    private static final class OauthKeysDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_OauthKeysEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> oauthKeys_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetOauthKeys() {
      if (oauthKeys_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            OauthKeysDefaultEntryHolder.defaultEntry);
      }
      return oauthKeys_;
    }

    public int getOauthKeysCount() {
      return internalGetOauthKeys().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */

    public boolean containsOauthKeys(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetOauthKeys().getMap().containsKey(key);
    }
    /**
     * Use {@link #getOauthKeysMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getOauthKeys() {
      return getOauthKeysMap();
    }
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getOauthKeysMap() {
      return internalGetOauthKeys().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */

    public java.lang.String getOauthKeysOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetOauthKeys().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
     */

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

    public static final int BASIC_AUTH_DATA_FIELD_NUMBER = 14;
    private coprocess.CoprocessSessionState.BasicAuthData basicAuthData_;
    /**
     * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
     */
    public boolean hasBasicAuthData() {
      return basicAuthData_ != null;
    }
    /**
     * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
     */
    public coprocess.CoprocessSessionState.BasicAuthData getBasicAuthData() {
      return basicAuthData_ == null ? coprocess.CoprocessSessionState.BasicAuthData.getDefaultInstance() : basicAuthData_;
    }
    /**
     * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
     */
    public coprocess.CoprocessSessionState.BasicAuthDataOrBuilder getBasicAuthDataOrBuilder() {
      return getBasicAuthData();
    }

    public static final int JWT_DATA_FIELD_NUMBER = 15;
    private coprocess.CoprocessSessionState.JWTData jwtData_;
    /**
     * <code>optional .coprocess.JWTData jwt_data = 15;</code>
     */
    public boolean hasJwtData() {
      return jwtData_ != null;
    }
    /**
     * <code>optional .coprocess.JWTData jwt_data = 15;</code>
     */
    public coprocess.CoprocessSessionState.JWTData getJwtData() {
      return jwtData_ == null ? coprocess.CoprocessSessionState.JWTData.getDefaultInstance() : jwtData_;
    }
    /**
     * <code>optional .coprocess.JWTData jwt_data = 15;</code>
     */
    public coprocess.CoprocessSessionState.JWTDataOrBuilder getJwtDataOrBuilder() {
      return getJwtData();
    }

    public static final int HMAC_ENABLED_FIELD_NUMBER = 16;
    private boolean hmacEnabled_;
    /**
     * <code>optional bool hmac_enabled = 16;</code>
     */
    public boolean getHmacEnabled() {
      return hmacEnabled_;
    }

    public static final int HMAC_SECRET_FIELD_NUMBER = 17;
    private volatile java.lang.Object hmacSecret_;
    /**
     * <code>optional string hmac_secret = 17;</code>
     */
    public java.lang.String getHmacSecret() {
      java.lang.Object ref = hmacSecret_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        hmacSecret_ = s;
        return s;
      }
    }
    /**
     * <code>optional string hmac_secret = 17;</code>
     */
    public com.google.protobuf.ByteString
        getHmacSecretBytes() {
      java.lang.Object ref = hmacSecret_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hmacSecret_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_INACTIVE_FIELD_NUMBER = 18;
    private boolean isInactive_;
    /**
     * <code>optional bool is_inactive = 18;</code>
     */
    public boolean getIsInactive() {
      return isInactive_;
    }

    public static final int APPLY_POLICY_ID_FIELD_NUMBER = 19;
    private volatile java.lang.Object applyPolicyId_;
    /**
     * <code>optional string apply_policy_id = 19;</code>
     */
    public java.lang.String getApplyPolicyId() {
      java.lang.Object ref = applyPolicyId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        applyPolicyId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string apply_policy_id = 19;</code>
     */
    public com.google.protobuf.ByteString
        getApplyPolicyIdBytes() {
      java.lang.Object ref = applyPolicyId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        applyPolicyId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_EXPIRES_FIELD_NUMBER = 20;
    private long dataExpires_;
    /**
     * <code>optional int64 data_expires = 20;</code>
     */
    public long getDataExpires() {
      return dataExpires_;
    }

    public static final int MONITOR_FIELD_NUMBER = 21;
    private coprocess.CoprocessSessionState.Monitor monitor_;
    /**
     * <code>optional .coprocess.Monitor monitor = 21;</code>
     */
    public boolean hasMonitor() {
      return monitor_ != null;
    }
    /**
     * <code>optional .coprocess.Monitor monitor = 21;</code>
     */
    public coprocess.CoprocessSessionState.Monitor getMonitor() {
      return monitor_ == null ? coprocess.CoprocessSessionState.Monitor.getDefaultInstance() : monitor_;
    }
    /**
     * <code>optional .coprocess.Monitor monitor = 21;</code>
     */
    public coprocess.CoprocessSessionState.MonitorOrBuilder getMonitorOrBuilder() {
      return getMonitor();
    }

    public static final int ENABLE_DETAILED_RECORDING_FIELD_NUMBER = 22;
    private boolean enableDetailedRecording_;
    /**
     * <code>optional bool enable_detailed_recording = 22;</code>
     */
    public boolean getEnableDetailedRecording() {
      return enableDetailedRecording_;
    }

    public static final int METADATA_FIELD_NUMBER = 23;
    private volatile java.lang.Object metadata_;
    /**
     * <code>optional string metadata = 23;</code>
     */
    public java.lang.String getMetadata() {
      java.lang.Object ref = metadata_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        metadata_ = s;
        return s;
      }
    }
    /**
     * <code>optional string metadata = 23;</code>
     */
    public com.google.protobuf.ByteString
        getMetadataBytes() {
      java.lang.Object ref = metadata_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        metadata_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TAGS_FIELD_NUMBER = 24;
    private com.google.protobuf.LazyStringList tags_;
    /**
     * <code>repeated string tags = 24;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTagsList() {
      return tags_;
    }
    /**
     * <code>repeated string tags = 24;</code>
     */
    public int getTagsCount() {
      return tags_.size();
    }
    /**
     * <code>repeated string tags = 24;</code>
     */
    public java.lang.String getTags(int index) {
      return tags_.get(index);
    }
    /**
     * <code>repeated string tags = 24;</code>
     */
    public com.google.protobuf.ByteString
        getTagsBytes(int index) {
      return tags_.getByteString(index);
    }

    public static final int ALIAS_FIELD_NUMBER = 25;
    private volatile java.lang.Object alias_;
    /**
     * <code>optional string alias = 25;</code>
     */
    public java.lang.String getAlias() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        alias_ = s;
        return s;
      }
    }
    /**
     * <code>optional string alias = 25;</code>
     */
    public com.google.protobuf.ByteString
        getAliasBytes() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alias_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LAST_UPDATED_FIELD_NUMBER = 26;
    private volatile java.lang.Object lastUpdated_;
    /**
     * <code>optional string last_updated = 26;</code>
     */
    public java.lang.String getLastUpdated() {
      java.lang.Object ref = lastUpdated_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        lastUpdated_ = s;
        return s;
      }
    }
    /**
     * <code>optional string last_updated = 26;</code>
     */
    public com.google.protobuf.ByteString
        getLastUpdatedBytes() {
      java.lang.Object ref = lastUpdated_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        lastUpdated_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ID_EXTRACTOR_DEADLINE_FIELD_NUMBER = 27;
    private long idExtractorDeadline_;
    /**
     * <code>optional int64 id_extractor_deadline = 27;</code>
     */
    public long getIdExtractorDeadline() {
      return idExtractorDeadline_;
    }

    public static final int SESSION_LIFETIME_FIELD_NUMBER = 28;
    private long sessionLifetime_;
    /**
     * <code>optional int64 session_lifetime = 28;</code>
     */
    public long getSessionLifetime() {
      return sessionLifetime_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (lastCheck_ != 0L) {
        output.writeInt64(1, lastCheck_);
      }
      if (allowance_ != 0D) {
        output.writeDouble(2, allowance_);
      }
      if (rate_ != 0D) {
        output.writeDouble(3, rate_);
      }
      if (per_ != 0D) {
        output.writeDouble(4, per_);
      }
      if (expires_ != 0L) {
        output.writeInt64(5, expires_);
      }
      if (quotaMax_ != 0L) {
        output.writeInt64(6, quotaMax_);
      }
      if (quotaRenews_ != 0L) {
        output.writeInt64(7, quotaRenews_);
      }
      if (quotaRemaining_ != 0L) {
        output.writeInt64(8, quotaRemaining_);
      }
      if (quotaRenewalRate_ != 0L) {
        output.writeInt64(9, quotaRenewalRate_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetAccessRights(),
          AccessRightsDefaultEntryHolder.defaultEntry,
          10);
      if (!getOrgIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, orgId_);
      }
      if (!getOauthClientIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, oauthClientId_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetOauthKeys(),
          OauthKeysDefaultEntryHolder.defaultEntry,
          13);
      if (basicAuthData_ != null) {
        output.writeMessage(14, getBasicAuthData());
      }
      if (jwtData_ != null) {
        output.writeMessage(15, getJwtData());
      }
      if (hmacEnabled_ != false) {
        output.writeBool(16, hmacEnabled_);
      }
      if (!getHmacSecretBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, hmacSecret_);
      }
      if (isInactive_ != false) {
        output.writeBool(18, isInactive_);
      }
      if (!getApplyPolicyIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, applyPolicyId_);
      }
      if (dataExpires_ != 0L) {
        output.writeInt64(20, dataExpires_);
      }
      if (monitor_ != null) {
        output.writeMessage(21, getMonitor());
      }
      if (enableDetailedRecording_ != false) {
        output.writeBool(22, enableDetailedRecording_);
      }
      if (!getMetadataBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, metadata_);
      }
      for (int i = 0; i < tags_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, tags_.getRaw(i));
      }
      if (!getAliasBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 25, alias_);
      }
      if (!getLastUpdatedBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 26, lastUpdated_);
      }
      if (idExtractorDeadline_ != 0L) {
        output.writeInt64(27, idExtractorDeadline_);
      }
      if (sessionLifetime_ != 0L) {
        output.writeInt64(28, sessionLifetime_);
      }
    }

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

      size = 0;
      if (lastCheck_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, lastCheck_);
      }
      if (allowance_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, allowance_);
      }
      if (rate_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, rate_);
      }
      if (per_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, per_);
      }
      if (expires_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, expires_);
      }
      if (quotaMax_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, quotaMax_);
      }
      if (quotaRenews_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, quotaRenews_);
      }
      if (quotaRemaining_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, quotaRemaining_);
      }
      if (quotaRenewalRate_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, quotaRenewalRate_);
      }
      for (java.util.Map.Entry<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> entry
           : internalGetAccessRights().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
        accessRights__ = AccessRightsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, accessRights__);
      }
      if (!getOrgIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, orgId_);
      }
      if (!getOauthClientIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, oauthClientId_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetOauthKeys().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        oauthKeys__ = OauthKeysDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(13, oauthKeys__);
      }
      if (basicAuthData_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getBasicAuthData());
      }
      if (jwtData_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getJwtData());
      }
      if (hmacEnabled_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, hmacEnabled_);
      }
      if (!getHmacSecretBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, hmacSecret_);
      }
      if (isInactive_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, isInactive_);
      }
      if (!getApplyPolicyIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, applyPolicyId_);
      }
      if (dataExpires_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(20, dataExpires_);
      }
      if (monitor_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getMonitor());
      }
      if (enableDetailedRecording_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(22, enableDetailedRecording_);
      }
      if (!getMetadataBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, metadata_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tags_.size(); i++) {
          dataSize += computeStringSizeNoTag(tags_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getTagsList().size();
      }
      if (!getAliasBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(25, alias_);
      }
      if (!getLastUpdatedBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, lastUpdated_);
      }
      if (idExtractorDeadline_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(27, idExtractorDeadline_);
      }
      if (sessionLifetime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(28, sessionLifetime_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof coprocess.CoprocessSessionState.SessionState)) {
        return super.equals(obj);
      }
      coprocess.CoprocessSessionState.SessionState other = (coprocess.CoprocessSessionState.SessionState) obj;

      boolean result = true;
      result = result && (getLastCheck()
          == other.getLastCheck());
      result = result && (
          java.lang.Double.doubleToLongBits(getAllowance())
          == java.lang.Double.doubleToLongBits(
              other.getAllowance()));
      result = result && (
          java.lang.Double.doubleToLongBits(getRate())
          == java.lang.Double.doubleToLongBits(
              other.getRate()));
      result = result && (
          java.lang.Double.doubleToLongBits(getPer())
          == java.lang.Double.doubleToLongBits(
              other.getPer()));
      result = result && (getExpires()
          == other.getExpires());
      result = result && (getQuotaMax()
          == other.getQuotaMax());
      result = result && (getQuotaRenews()
          == other.getQuotaRenews());
      result = result && (getQuotaRemaining()
          == other.getQuotaRemaining());
      result = result && (getQuotaRenewalRate()
          == other.getQuotaRenewalRate());
      result = result && internalGetAccessRights().equals(
          other.internalGetAccessRights());
      result = result && getOrgId()
          .equals(other.getOrgId());
      result = result && getOauthClientId()
          .equals(other.getOauthClientId());
      result = result && internalGetOauthKeys().equals(
          other.internalGetOauthKeys());
      result = result && (hasBasicAuthData() == other.hasBasicAuthData());
      if (hasBasicAuthData()) {
        result = result && getBasicAuthData()
            .equals(other.getBasicAuthData());
      }
      result = result && (hasJwtData() == other.hasJwtData());
      if (hasJwtData()) {
        result = result && getJwtData()
            .equals(other.getJwtData());
      }
      result = result && (getHmacEnabled()
          == other.getHmacEnabled());
      result = result && getHmacSecret()
          .equals(other.getHmacSecret());
      result = result && (getIsInactive()
          == other.getIsInactive());
      result = result && getApplyPolicyId()
          .equals(other.getApplyPolicyId());
      result = result && (getDataExpires()
          == other.getDataExpires());
      result = result && (hasMonitor() == other.hasMonitor());
      if (hasMonitor()) {
        result = result && getMonitor()
            .equals(other.getMonitor());
      }
      result = result && (getEnableDetailedRecording()
          == other.getEnableDetailedRecording());
      result = result && getMetadata()
          .equals(other.getMetadata());
      result = result && getTagsList()
          .equals(other.getTagsList());
      result = result && getAlias()
          .equals(other.getAlias());
      result = result && getLastUpdated()
          .equals(other.getLastUpdated());
      result = result && (getIdExtractorDeadline()
          == other.getIdExtractorDeadline());
      result = result && (getSessionLifetime()
          == other.getSessionLifetime());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + LAST_CHECK_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getLastCheck());
      hash = (37 * hash) + ALLOWANCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getAllowance()));
      hash = (37 * hash) + RATE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getRate()));
      hash = (37 * hash) + PER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getPer()));
      hash = (37 * hash) + EXPIRES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getExpires());
      hash = (37 * hash) + QUOTA_MAX_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getQuotaMax());
      hash = (37 * hash) + QUOTA_RENEWS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getQuotaRenews());
      hash = (37 * hash) + QUOTA_REMAINING_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getQuotaRemaining());
      hash = (37 * hash) + QUOTA_RENEWAL_RATE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getQuotaRenewalRate());
      if (!internalGetAccessRights().getMap().isEmpty()) {
        hash = (37 * hash) + ACCESS_RIGHTS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAccessRights().hashCode();
      }
      hash = (37 * hash) + ORG_ID_FIELD_NUMBER;
      hash = (53 * hash) + getOrgId().hashCode();
      hash = (37 * hash) + OAUTH_CLIENT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getOauthClientId().hashCode();
      if (!internalGetOauthKeys().getMap().isEmpty()) {
        hash = (37 * hash) + OAUTH_KEYS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetOauthKeys().hashCode();
      }
      if (hasBasicAuthData()) {
        hash = (37 * hash) + BASIC_AUTH_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getBasicAuthData().hashCode();
      }
      if (hasJwtData()) {
        hash = (37 * hash) + JWT_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getJwtData().hashCode();
      }
      hash = (37 * hash) + HMAC_ENABLED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getHmacEnabled());
      hash = (37 * hash) + HMAC_SECRET_FIELD_NUMBER;
      hash = (53 * hash) + getHmacSecret().hashCode();
      hash = (37 * hash) + IS_INACTIVE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsInactive());
      hash = (37 * hash) + APPLY_POLICY_ID_FIELD_NUMBER;
      hash = (53 * hash) + getApplyPolicyId().hashCode();
      hash = (37 * hash) + DATA_EXPIRES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getDataExpires());
      if (hasMonitor()) {
        hash = (37 * hash) + MONITOR_FIELD_NUMBER;
        hash = (53 * hash) + getMonitor().hashCode();
      }
      hash = (37 * hash) + ENABLE_DETAILED_RECORDING_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getEnableDetailedRecording());
      hash = (37 * hash) + METADATA_FIELD_NUMBER;
      hash = (53 * hash) + getMetadata().hashCode();
      if (getTagsCount() > 0) {
        hash = (37 * hash) + TAGS_FIELD_NUMBER;
        hash = (53 * hash) + getTagsList().hashCode();
      }
      hash = (37 * hash) + ALIAS_FIELD_NUMBER;
      hash = (53 * hash) + getAlias().hashCode();
      hash = (37 * hash) + LAST_UPDATED_FIELD_NUMBER;
      hash = (53 * hash) + getLastUpdated().hashCode();
      hash = (37 * hash) + ID_EXTRACTOR_DEADLINE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getIdExtractorDeadline());
      hash = (37 * hash) + SESSION_LIFETIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getSessionLifetime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static coprocess.CoprocessSessionState.SessionState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.SessionState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.SessionState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static coprocess.CoprocessSessionState.SessionState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(coprocess.CoprocessSessionState.SessionState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code coprocess.SessionState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:coprocess.SessionState)
        coprocess.CoprocessSessionState.SessionStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 10:
            return internalGetAccessRights();
          case 13:
            return internalGetOauthKeys();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 10:
            return internalGetMutableAccessRights();
          case 13:
            return internalGetMutableOauthKeys();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                coprocess.CoprocessSessionState.SessionState.class, coprocess.CoprocessSessionState.SessionState.Builder.class);
      }

      // Construct using coprocess.CoprocessSessionState.SessionState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        lastCheck_ = 0L;

        allowance_ = 0D;

        rate_ = 0D;

        per_ = 0D;

        expires_ = 0L;

        quotaMax_ = 0L;

        quotaRenews_ = 0L;

        quotaRemaining_ = 0L;

        quotaRenewalRate_ = 0L;

        internalGetMutableAccessRights().clear();
        orgId_ = "";

        oauthClientId_ = "";

        internalGetMutableOauthKeys().clear();
        if (basicAuthDataBuilder_ == null) {
          basicAuthData_ = null;
        } else {
          basicAuthData_ = null;
          basicAuthDataBuilder_ = null;
        }
        if (jwtDataBuilder_ == null) {
          jwtData_ = null;
        } else {
          jwtData_ = null;
          jwtDataBuilder_ = null;
        }
        hmacEnabled_ = false;

        hmacSecret_ = "";

        isInactive_ = false;

        applyPolicyId_ = "";

        dataExpires_ = 0L;

        if (monitorBuilder_ == null) {
          monitor_ = null;
        } else {
          monitor_ = null;
          monitorBuilder_ = null;
        }
        enableDetailedRecording_ = false;

        metadata_ = "";

        tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00800000);
        alias_ = "";

        lastUpdated_ = "";

        idExtractorDeadline_ = 0L;

        sessionLifetime_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return coprocess.CoprocessSessionState.internal_static_coprocess_SessionState_descriptor;
      }

      public coprocess.CoprocessSessionState.SessionState getDefaultInstanceForType() {
        return coprocess.CoprocessSessionState.SessionState.getDefaultInstance();
      }

      public coprocess.CoprocessSessionState.SessionState build() {
        coprocess.CoprocessSessionState.SessionState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public coprocess.CoprocessSessionState.SessionState buildPartial() {
        coprocess.CoprocessSessionState.SessionState result = new coprocess.CoprocessSessionState.SessionState(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.lastCheck_ = lastCheck_;
        result.allowance_ = allowance_;
        result.rate_ = rate_;
        result.per_ = per_;
        result.expires_ = expires_;
        result.quotaMax_ = quotaMax_;
        result.quotaRenews_ = quotaRenews_;
        result.quotaRemaining_ = quotaRemaining_;
        result.quotaRenewalRate_ = quotaRenewalRate_;
        result.accessRights_ = internalGetAccessRights();
        result.accessRights_.makeImmutable();
        result.orgId_ = orgId_;
        result.oauthClientId_ = oauthClientId_;
        result.oauthKeys_ = internalGetOauthKeys();
        result.oauthKeys_.makeImmutable();
        if (basicAuthDataBuilder_ == null) {
          result.basicAuthData_ = basicAuthData_;
        } else {
          result.basicAuthData_ = basicAuthDataBuilder_.build();
        }
        if (jwtDataBuilder_ == null) {
          result.jwtData_ = jwtData_;
        } else {
          result.jwtData_ = jwtDataBuilder_.build();
        }
        result.hmacEnabled_ = hmacEnabled_;
        result.hmacSecret_ = hmacSecret_;
        result.isInactive_ = isInactive_;
        result.applyPolicyId_ = applyPolicyId_;
        result.dataExpires_ = dataExpires_;
        if (monitorBuilder_ == null) {
          result.monitor_ = monitor_;
        } else {
          result.monitor_ = monitorBuilder_.build();
        }
        result.enableDetailedRecording_ = enableDetailedRecording_;
        result.metadata_ = metadata_;
        if (((bitField0_ & 0x00800000) == 0x00800000)) {
          tags_ = tags_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00800000);
        }
        result.tags_ = tags_;
        result.alias_ = alias_;
        result.lastUpdated_ = lastUpdated_;
        result.idExtractorDeadline_ = idExtractorDeadline_;
        result.sessionLifetime_ = sessionLifetime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof coprocess.CoprocessSessionState.SessionState) {
          return mergeFrom((coprocess.CoprocessSessionState.SessionState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(coprocess.CoprocessSessionState.SessionState other) {
        if (other == coprocess.CoprocessSessionState.SessionState.getDefaultInstance()) return this;
        if (other.getLastCheck() != 0L) {
          setLastCheck(other.getLastCheck());
        }
        if (other.getAllowance() != 0D) {
          setAllowance(other.getAllowance());
        }
        if (other.getRate() != 0D) {
          setRate(other.getRate());
        }
        if (other.getPer() != 0D) {
          setPer(other.getPer());
        }
        if (other.getExpires() != 0L) {
          setExpires(other.getExpires());
        }
        if (other.getQuotaMax() != 0L) {
          setQuotaMax(other.getQuotaMax());
        }
        if (other.getQuotaRenews() != 0L) {
          setQuotaRenews(other.getQuotaRenews());
        }
        if (other.getQuotaRemaining() != 0L) {
          setQuotaRemaining(other.getQuotaRemaining());
        }
        if (other.getQuotaRenewalRate() != 0L) {
          setQuotaRenewalRate(other.getQuotaRenewalRate());
        }
        internalGetMutableAccessRights().mergeFrom(
            other.internalGetAccessRights());
        if (!other.getOrgId().isEmpty()) {
          orgId_ = other.orgId_;
          onChanged();
        }
        if (!other.getOauthClientId().isEmpty()) {
          oauthClientId_ = other.oauthClientId_;
          onChanged();
        }
        internalGetMutableOauthKeys().mergeFrom(
            other.internalGetOauthKeys());
        if (other.hasBasicAuthData()) {
          mergeBasicAuthData(other.getBasicAuthData());
        }
        if (other.hasJwtData()) {
          mergeJwtData(other.getJwtData());
        }
        if (other.getHmacEnabled() != false) {
          setHmacEnabled(other.getHmacEnabled());
        }
        if (!other.getHmacSecret().isEmpty()) {
          hmacSecret_ = other.hmacSecret_;
          onChanged();
        }
        if (other.getIsInactive() != false) {
          setIsInactive(other.getIsInactive());
        }
        if (!other.getApplyPolicyId().isEmpty()) {
          applyPolicyId_ = other.applyPolicyId_;
          onChanged();
        }
        if (other.getDataExpires() != 0L) {
          setDataExpires(other.getDataExpires());
        }
        if (other.hasMonitor()) {
          mergeMonitor(other.getMonitor());
        }
        if (other.getEnableDetailedRecording() != false) {
          setEnableDetailedRecording(other.getEnableDetailedRecording());
        }
        if (!other.getMetadata().isEmpty()) {
          metadata_ = other.metadata_;
          onChanged();
        }
        if (!other.tags_.isEmpty()) {
          if (tags_.isEmpty()) {
            tags_ = other.tags_;
            bitField0_ = (bitField0_ & ~0x00800000);
          } else {
            ensureTagsIsMutable();
            tags_.addAll(other.tags_);
          }
          onChanged();
        }
        if (!other.getAlias().isEmpty()) {
          alias_ = other.alias_;
          onChanged();
        }
        if (!other.getLastUpdated().isEmpty()) {
          lastUpdated_ = other.lastUpdated_;
          onChanged();
        }
        if (other.getIdExtractorDeadline() != 0L) {
          setIdExtractorDeadline(other.getIdExtractorDeadline());
        }
        if (other.getSessionLifetime() != 0L) {
          setSessionLifetime(other.getSessionLifetime());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private long lastCheck_ ;
      /**
       * <code>optional int64 last_check = 1;</code>
       */
      public long getLastCheck() {
        return lastCheck_;
      }
      /**
       * <code>optional int64 last_check = 1;</code>
       */
      public Builder setLastCheck(long value) {
        
        lastCheck_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 last_check = 1;</code>
       */
      public Builder clearLastCheck() {
        
        lastCheck_ = 0L;
        onChanged();
        return this;
      }

      private double allowance_ ;
      /**
       * <code>optional double allowance = 2;</code>
       */
      public double getAllowance() {
        return allowance_;
      }
      /**
       * <code>optional double allowance = 2;</code>
       */
      public Builder setAllowance(double value) {
        
        allowance_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional double allowance = 2;</code>
       */
      public Builder clearAllowance() {
        
        allowance_ = 0D;
        onChanged();
        return this;
      }

      private double rate_ ;
      /**
       * <code>optional double rate = 3;</code>
       */
      public double getRate() {
        return rate_;
      }
      /**
       * <code>optional double rate = 3;</code>
       */
      public Builder setRate(double value) {
        
        rate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional double rate = 3;</code>
       */
      public Builder clearRate() {
        
        rate_ = 0D;
        onChanged();
        return this;
      }

      private double per_ ;
      /**
       * <code>optional double per = 4;</code>
       */
      public double getPer() {
        return per_;
      }
      /**
       * <code>optional double per = 4;</code>
       */
      public Builder setPer(double value) {
        
        per_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional double per = 4;</code>
       */
      public Builder clearPer() {
        
        per_ = 0D;
        onChanged();
        return this;
      }

      private long expires_ ;
      /**
       * <code>optional int64 expires = 5;</code>
       */
      public long getExpires() {
        return expires_;
      }
      /**
       * <code>optional int64 expires = 5;</code>
       */
      public Builder setExpires(long value) {
        
        expires_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 expires = 5;</code>
       */
      public Builder clearExpires() {
        
        expires_ = 0L;
        onChanged();
        return this;
      }

      private long quotaMax_ ;
      /**
       * <code>optional int64 quota_max = 6;</code>
       */
      public long getQuotaMax() {
        return quotaMax_;
      }
      /**
       * <code>optional int64 quota_max = 6;</code>
       */
      public Builder setQuotaMax(long value) {
        
        quotaMax_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 quota_max = 6;</code>
       */
      public Builder clearQuotaMax() {
        
        quotaMax_ = 0L;
        onChanged();
        return this;
      }

      private long quotaRenews_ ;
      /**
       * <code>optional int64 quota_renews = 7;</code>
       */
      public long getQuotaRenews() {
        return quotaRenews_;
      }
      /**
       * <code>optional int64 quota_renews = 7;</code>
       */
      public Builder setQuotaRenews(long value) {
        
        quotaRenews_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 quota_renews = 7;</code>
       */
      public Builder clearQuotaRenews() {
        
        quotaRenews_ = 0L;
        onChanged();
        return this;
      }

      private long quotaRemaining_ ;
      /**
       * <code>optional int64 quota_remaining = 8;</code>
       */
      public long getQuotaRemaining() {
        return quotaRemaining_;
      }
      /**
       * <code>optional int64 quota_remaining = 8;</code>
       */
      public Builder setQuotaRemaining(long value) {
        
        quotaRemaining_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 quota_remaining = 8;</code>
       */
      public Builder clearQuotaRemaining() {
        
        quotaRemaining_ = 0L;
        onChanged();
        return this;
      }

      private long quotaRenewalRate_ ;
      /**
       * <code>optional int64 quota_renewal_rate = 9;</code>
       */
      public long getQuotaRenewalRate() {
        return quotaRenewalRate_;
      }
      /**
       * <code>optional int64 quota_renewal_rate = 9;</code>
       */
      public Builder setQuotaRenewalRate(long value) {
        
        quotaRenewalRate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 quota_renewal_rate = 9;</code>
       */
      public Builder clearQuotaRenewalRate() {
        
        quotaRenewalRate_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> accessRights_;
      private com.google.protobuf.MapField<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
      internalGetAccessRights() {
        if (accessRights_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AccessRightsDefaultEntryHolder.defaultEntry);
        }
        return accessRights_;
      }
      private com.google.protobuf.MapField<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
      internalGetMutableAccessRights() {
        onChanged();;
        if (accessRights_ == null) {
          accessRights_ = com.google.protobuf.MapField.newMapField(
              AccessRightsDefaultEntryHolder.defaultEntry);
        }
        if (!accessRights_.isMutable()) {
          accessRights_ = accessRights_.copy();
        }
        return accessRights_;
      }

      public int getAccessRightsCount() {
        return internalGetAccessRights().getMap().size();
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */

      public boolean containsAccessRights(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAccessRights().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAccessRightsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> getAccessRights() {
        return getAccessRightsMap();
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */

      public java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> getAccessRightsMap() {
        return internalGetAccessRights().getMap();
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */

      public coprocess.CoprocessSessionState.AccessDefinition getAccessRightsOrDefault(
          java.lang.String key,
          coprocess.CoprocessSessionState.AccessDefinition defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> map =
            internalGetAccessRights().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */

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

      public Builder clearAccessRights() {
        getMutableAccessRights().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */

      public Builder removeAccessRights(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        getMutableAccessRights().remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition>
      getMutableAccessRights() {
        return internalGetMutableAccessRights().getMutableMap();
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */
      public Builder putAccessRights(
          java.lang.String key,
          coprocess.CoprocessSessionState.AccessDefinition value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        getMutableAccessRights().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, .coprocess.AccessDefinition&gt; access_rights = 10;</code>
       */

      public Builder putAllAccessRights(
          java.util.Map<java.lang.String, coprocess.CoprocessSessionState.AccessDefinition> values) {
        getMutableAccessRights().putAll(values);
        return this;
      }

      private java.lang.Object orgId_ = "";
      /**
       * <code>optional string org_id = 11;</code>
       */
      public java.lang.String getOrgId() {
        java.lang.Object ref = orgId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          orgId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string org_id = 11;</code>
       */
      public com.google.protobuf.ByteString
          getOrgIdBytes() {
        java.lang.Object ref = orgId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orgId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string org_id = 11;</code>
       */
      public Builder setOrgId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        orgId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string org_id = 11;</code>
       */
      public Builder clearOrgId() {
        
        orgId_ = getDefaultInstance().getOrgId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string org_id = 11;</code>
       */
      public Builder setOrgIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        orgId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object oauthClientId_ = "";
      /**
       * <code>optional string oauth_client_id = 12;</code>
       */
      public java.lang.String getOauthClientId() {
        java.lang.Object ref = oauthClientId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          oauthClientId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string oauth_client_id = 12;</code>
       */
      public com.google.protobuf.ByteString
          getOauthClientIdBytes() {
        java.lang.Object ref = oauthClientId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          oauthClientId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string oauth_client_id = 12;</code>
       */
      public Builder setOauthClientId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        oauthClientId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string oauth_client_id = 12;</code>
       */
      public Builder clearOauthClientId() {
        
        oauthClientId_ = getDefaultInstance().getOauthClientId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string oauth_client_id = 12;</code>
       */
      public Builder setOauthClientIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        oauthClientId_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> oauthKeys_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetOauthKeys() {
        if (oauthKeys_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              OauthKeysDefaultEntryHolder.defaultEntry);
        }
        return oauthKeys_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableOauthKeys() {
        onChanged();;
        if (oauthKeys_ == null) {
          oauthKeys_ = com.google.protobuf.MapField.newMapField(
              OauthKeysDefaultEntryHolder.defaultEntry);
        }
        if (!oauthKeys_.isMutable()) {
          oauthKeys_ = oauthKeys_.copy();
        }
        return oauthKeys_;
      }

      public int getOauthKeysCount() {
        return internalGetOauthKeys().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */

      public boolean containsOauthKeys(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetOauthKeys().getMap().containsKey(key);
      }
      /**
       * Use {@link #getOauthKeysMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getOauthKeys() {
        return getOauthKeysMap();
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getOauthKeysMap() {
        return internalGetOauthKeys().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */

      public java.lang.String getOauthKeysOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetOauthKeys().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */

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

      public Builder clearOauthKeys() {
        getMutableOauthKeys().clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */

      public Builder removeOauthKeys(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        getMutableOauthKeys().remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableOauthKeys() {
        return internalGetMutableOauthKeys().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */
      public Builder putOauthKeys(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        getMutableOauthKeys().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; oauth_keys = 13;</code>
       */

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

      private coprocess.CoprocessSessionState.BasicAuthData basicAuthData_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          coprocess.CoprocessSessionState.BasicAuthData, coprocess.CoprocessSessionState.BasicAuthData.Builder, coprocess.CoprocessSessionState.BasicAuthDataOrBuilder> basicAuthDataBuilder_;
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public boolean hasBasicAuthData() {
        return basicAuthDataBuilder_ != null || basicAuthData_ != null;
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public coprocess.CoprocessSessionState.BasicAuthData getBasicAuthData() {
        if (basicAuthDataBuilder_ == null) {
          return basicAuthData_ == null ? coprocess.CoprocessSessionState.BasicAuthData.getDefaultInstance() : basicAuthData_;
        } else {
          return basicAuthDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public Builder setBasicAuthData(coprocess.CoprocessSessionState.BasicAuthData value) {
        if (basicAuthDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          basicAuthData_ = value;
          onChanged();
        } else {
          basicAuthDataBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public Builder setBasicAuthData(
          coprocess.CoprocessSessionState.BasicAuthData.Builder builderForValue) {
        if (basicAuthDataBuilder_ == null) {
          basicAuthData_ = builderForValue.build();
          onChanged();
        } else {
          basicAuthDataBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public Builder mergeBasicAuthData(coprocess.CoprocessSessionState.BasicAuthData value) {
        if (basicAuthDataBuilder_ == null) {
          if (basicAuthData_ != null) {
            basicAuthData_ =
              coprocess.CoprocessSessionState.BasicAuthData.newBuilder(basicAuthData_).mergeFrom(value).buildPartial();
          } else {
            basicAuthData_ = value;
          }
          onChanged();
        } else {
          basicAuthDataBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public Builder clearBasicAuthData() {
        if (basicAuthDataBuilder_ == null) {
          basicAuthData_ = null;
          onChanged();
        } else {
          basicAuthData_ = null;
          basicAuthDataBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public coprocess.CoprocessSessionState.BasicAuthData.Builder getBasicAuthDataBuilder() {
        
        onChanged();
        return getBasicAuthDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      public coprocess.CoprocessSessionState.BasicAuthDataOrBuilder getBasicAuthDataOrBuilder() {
        if (basicAuthDataBuilder_ != null) {
          return basicAuthDataBuilder_.getMessageOrBuilder();
        } else {
          return basicAuthData_ == null ?
              coprocess.CoprocessSessionState.BasicAuthData.getDefaultInstance() : basicAuthData_;
        }
      }
      /**
       * <code>optional .coprocess.BasicAuthData basic_auth_data = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          coprocess.CoprocessSessionState.BasicAuthData, coprocess.CoprocessSessionState.BasicAuthData.Builder, coprocess.CoprocessSessionState.BasicAuthDataOrBuilder> 
          getBasicAuthDataFieldBuilder() {
        if (basicAuthDataBuilder_ == null) {
          basicAuthDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              coprocess.CoprocessSessionState.BasicAuthData, coprocess.CoprocessSessionState.BasicAuthData.Builder, coprocess.CoprocessSessionState.BasicAuthDataOrBuilder>(
                  getBasicAuthData(),
                  getParentForChildren(),
                  isClean());
          basicAuthData_ = null;
        }
        return basicAuthDataBuilder_;
      }

      private coprocess.CoprocessSessionState.JWTData jwtData_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          coprocess.CoprocessSessionState.JWTData, coprocess.CoprocessSessionState.JWTData.Builder, coprocess.CoprocessSessionState.JWTDataOrBuilder> jwtDataBuilder_;
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public boolean hasJwtData() {
        return jwtDataBuilder_ != null || jwtData_ != null;
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public coprocess.CoprocessSessionState.JWTData getJwtData() {
        if (jwtDataBuilder_ == null) {
          return jwtData_ == null ? coprocess.CoprocessSessionState.JWTData.getDefaultInstance() : jwtData_;
        } else {
          return jwtDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public Builder setJwtData(coprocess.CoprocessSessionState.JWTData value) {
        if (jwtDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          jwtData_ = value;
          onChanged();
        } else {
          jwtDataBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public Builder setJwtData(
          coprocess.CoprocessSessionState.JWTData.Builder builderForValue) {
        if (jwtDataBuilder_ == null) {
          jwtData_ = builderForValue.build();
          onChanged();
        } else {
          jwtDataBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public Builder mergeJwtData(coprocess.CoprocessSessionState.JWTData value) {
        if (jwtDataBuilder_ == null) {
          if (jwtData_ != null) {
            jwtData_ =
              coprocess.CoprocessSessionState.JWTData.newBuilder(jwtData_).mergeFrom(value).buildPartial();
          } else {
            jwtData_ = value;
          }
          onChanged();
        } else {
          jwtDataBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public Builder clearJwtData() {
        if (jwtDataBuilder_ == null) {
          jwtData_ = null;
          onChanged();
        } else {
          jwtData_ = null;
          jwtDataBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public coprocess.CoprocessSessionState.JWTData.Builder getJwtDataBuilder() {
        
        onChanged();
        return getJwtDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      public coprocess.CoprocessSessionState.JWTDataOrBuilder getJwtDataOrBuilder() {
        if (jwtDataBuilder_ != null) {
          return jwtDataBuilder_.getMessageOrBuilder();
        } else {
          return jwtData_ == null ?
              coprocess.CoprocessSessionState.JWTData.getDefaultInstance() : jwtData_;
        }
      }
      /**
       * <code>optional .coprocess.JWTData jwt_data = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          coprocess.CoprocessSessionState.JWTData, coprocess.CoprocessSessionState.JWTData.Builder, coprocess.CoprocessSessionState.JWTDataOrBuilder> 
          getJwtDataFieldBuilder() {
        if (jwtDataBuilder_ == null) {
          jwtDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              coprocess.CoprocessSessionState.JWTData, coprocess.CoprocessSessionState.JWTData.Builder, coprocess.CoprocessSessionState.JWTDataOrBuilder>(
                  getJwtData(),
                  getParentForChildren(),
                  isClean());
          jwtData_ = null;
        }
        return jwtDataBuilder_;
      }

      private boolean hmacEnabled_ ;
      /**
       * <code>optional bool hmac_enabled = 16;</code>
       */
      public boolean getHmacEnabled() {
        return hmacEnabled_;
      }
      /**
       * <code>optional bool hmac_enabled = 16;</code>
       */
      public Builder setHmacEnabled(boolean value) {
        
        hmacEnabled_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool hmac_enabled = 16;</code>
       */
      public Builder clearHmacEnabled() {
        
        hmacEnabled_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object hmacSecret_ = "";
      /**
       * <code>optional string hmac_secret = 17;</code>
       */
      public java.lang.String getHmacSecret() {
        java.lang.Object ref = hmacSecret_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hmacSecret_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string hmac_secret = 17;</code>
       */
      public com.google.protobuf.ByteString
          getHmacSecretBytes() {
        java.lang.Object ref = hmacSecret_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hmacSecret_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string hmac_secret = 17;</code>
       */
      public Builder setHmacSecret(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hmacSecret_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string hmac_secret = 17;</code>
       */
      public Builder clearHmacSecret() {
        
        hmacSecret_ = getDefaultInstance().getHmacSecret();
        onChanged();
        return this;
      }
      /**
       * <code>optional string hmac_secret = 17;</code>
       */
      public Builder setHmacSecretBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hmacSecret_ = value;
        onChanged();
        return this;
      }

      private boolean isInactive_ ;
      /**
       * <code>optional bool is_inactive = 18;</code>
       */
      public boolean getIsInactive() {
        return isInactive_;
      }
      /**
       * <code>optional bool is_inactive = 18;</code>
       */
      public Builder setIsInactive(boolean value) {
        
        isInactive_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_inactive = 18;</code>
       */
      public Builder clearIsInactive() {
        
        isInactive_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object applyPolicyId_ = "";
      /**
       * <code>optional string apply_policy_id = 19;</code>
       */
      public java.lang.String getApplyPolicyId() {
        java.lang.Object ref = applyPolicyId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          applyPolicyId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string apply_policy_id = 19;</code>
       */
      public com.google.protobuf.ByteString
          getApplyPolicyIdBytes() {
        java.lang.Object ref = applyPolicyId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          applyPolicyId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string apply_policy_id = 19;</code>
       */
      public Builder setApplyPolicyId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        applyPolicyId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string apply_policy_id = 19;</code>
       */
      public Builder clearApplyPolicyId() {
        
        applyPolicyId_ = getDefaultInstance().getApplyPolicyId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string apply_policy_id = 19;</code>
       */
      public Builder setApplyPolicyIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        applyPolicyId_ = value;
        onChanged();
        return this;
      }

      private long dataExpires_ ;
      /**
       * <code>optional int64 data_expires = 20;</code>
       */
      public long getDataExpires() {
        return dataExpires_;
      }
      /**
       * <code>optional int64 data_expires = 20;</code>
       */
      public Builder setDataExpires(long value) {
        
        dataExpires_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 data_expires = 20;</code>
       */
      public Builder clearDataExpires() {
        
        dataExpires_ = 0L;
        onChanged();
        return this;
      }

      private coprocess.CoprocessSessionState.Monitor monitor_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          coprocess.CoprocessSessionState.Monitor, coprocess.CoprocessSessionState.Monitor.Builder, coprocess.CoprocessSessionState.MonitorOrBuilder> monitorBuilder_;
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public boolean hasMonitor() {
        return monitorBuilder_ != null || monitor_ != null;
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public coprocess.CoprocessSessionState.Monitor getMonitor() {
        if (monitorBuilder_ == null) {
          return monitor_ == null ? coprocess.CoprocessSessionState.Monitor.getDefaultInstance() : monitor_;
        } else {
          return monitorBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public Builder setMonitor(coprocess.CoprocessSessionState.Monitor value) {
        if (monitorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          monitor_ = value;
          onChanged();
        } else {
          monitorBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public Builder setMonitor(
          coprocess.CoprocessSessionState.Monitor.Builder builderForValue) {
        if (monitorBuilder_ == null) {
          monitor_ = builderForValue.build();
          onChanged();
        } else {
          monitorBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public Builder mergeMonitor(coprocess.CoprocessSessionState.Monitor value) {
        if (monitorBuilder_ == null) {
          if (monitor_ != null) {
            monitor_ =
              coprocess.CoprocessSessionState.Monitor.newBuilder(monitor_).mergeFrom(value).buildPartial();
          } else {
            monitor_ = value;
          }
          onChanged();
        } else {
          monitorBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public Builder clearMonitor() {
        if (monitorBuilder_ == null) {
          monitor_ = null;
          onChanged();
        } else {
          monitor_ = null;
          monitorBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public coprocess.CoprocessSessionState.Monitor.Builder getMonitorBuilder() {
        
        onChanged();
        return getMonitorFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      public coprocess.CoprocessSessionState.MonitorOrBuilder getMonitorOrBuilder() {
        if (monitorBuilder_ != null) {
          return monitorBuilder_.getMessageOrBuilder();
        } else {
          return monitor_ == null ?
              coprocess.CoprocessSessionState.Monitor.getDefaultInstance() : monitor_;
        }
      }
      /**
       * <code>optional .coprocess.Monitor monitor = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          coprocess.CoprocessSessionState.Monitor, coprocess.CoprocessSessionState.Monitor.Builder, coprocess.CoprocessSessionState.MonitorOrBuilder> 
          getMonitorFieldBuilder() {
        if (monitorBuilder_ == null) {
          monitorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              coprocess.CoprocessSessionState.Monitor, coprocess.CoprocessSessionState.Monitor.Builder, coprocess.CoprocessSessionState.MonitorOrBuilder>(
                  getMonitor(),
                  getParentForChildren(),
                  isClean());
          monitor_ = null;
        }
        return monitorBuilder_;
      }

      private boolean enableDetailedRecording_ ;
      /**
       * <code>optional bool enable_detailed_recording = 22;</code>
       */
      public boolean getEnableDetailedRecording() {
        return enableDetailedRecording_;
      }
      /**
       * <code>optional bool enable_detailed_recording = 22;</code>
       */
      public Builder setEnableDetailedRecording(boolean value) {
        
        enableDetailedRecording_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool enable_detailed_recording = 22;</code>
       */
      public Builder clearEnableDetailedRecording() {
        
        enableDetailedRecording_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object metadata_ = "";
      /**
       * <code>optional string metadata = 23;</code>
       */
      public java.lang.String getMetadata() {
        java.lang.Object ref = metadata_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          metadata_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string metadata = 23;</code>
       */
      public com.google.protobuf.ByteString
          getMetadataBytes() {
        java.lang.Object ref = metadata_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          metadata_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string metadata = 23;</code>
       */
      public Builder setMetadata(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        metadata_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string metadata = 23;</code>
       */
      public Builder clearMetadata() {
        
        metadata_ = getDefaultInstance().getMetadata();
        onChanged();
        return this;
      }
      /**
       * <code>optional string metadata = 23;</code>
       */
      public Builder setMetadataBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        metadata_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTagsIsMutable() {
        if (!((bitField0_ & 0x00800000) == 0x00800000)) {
          tags_ = new com.google.protobuf.LazyStringArrayList(tags_);
          bitField0_ |= 0x00800000;
         }
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTagsList() {
        return tags_.getUnmodifiableView();
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public int getTagsCount() {
        return tags_.size();
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public java.lang.String getTags(int index) {
        return tags_.get(index);
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public com.google.protobuf.ByteString
          getTagsBytes(int index) {
        return tags_.getByteString(index);
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public Builder setTags(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagsIsMutable();
        tags_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public Builder addTags(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagsIsMutable();
        tags_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public Builder addAllTags(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tags_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public Builder clearTags() {
        tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00800000);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 24;</code>
       */
      public Builder addTagsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTagsIsMutable();
        tags_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object alias_ = "";
      /**
       * <code>optional string alias = 25;</code>
       */
      public java.lang.String getAlias() {
        java.lang.Object ref = alias_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alias_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string alias = 25;</code>
       */
      public com.google.protobuf.ByteString
          getAliasBytes() {
        java.lang.Object ref = alias_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alias_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string alias = 25;</code>
       */
      public Builder setAlias(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        alias_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string alias = 25;</code>
       */
      public Builder clearAlias() {
        
        alias_ = getDefaultInstance().getAlias();
        onChanged();
        return this;
      }
      /**
       * <code>optional string alias = 25;</code>
       */
      public Builder setAliasBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        alias_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object lastUpdated_ = "";
      /**
       * <code>optional string last_updated = 26;</code>
       */
      public java.lang.String getLastUpdated() {
        java.lang.Object ref = lastUpdated_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          lastUpdated_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string last_updated = 26;</code>
       */
      public com.google.protobuf.ByteString
          getLastUpdatedBytes() {
        java.lang.Object ref = lastUpdated_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          lastUpdated_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string last_updated = 26;</code>
       */
      public Builder setLastUpdated(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        lastUpdated_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string last_updated = 26;</code>
       */
      public Builder clearLastUpdated() {
        
        lastUpdated_ = getDefaultInstance().getLastUpdated();
        onChanged();
        return this;
      }
      /**
       * <code>optional string last_updated = 26;</code>
       */
      public Builder setLastUpdatedBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        lastUpdated_ = value;
        onChanged();
        return this;
      }

      private long idExtractorDeadline_ ;
      /**
       * <code>optional int64 id_extractor_deadline = 27;</code>
       */
      public long getIdExtractorDeadline() {
        return idExtractorDeadline_;
      }
      /**
       * <code>optional int64 id_extractor_deadline = 27;</code>
       */
      public Builder setIdExtractorDeadline(long value) {
        
        idExtractorDeadline_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 id_extractor_deadline = 27;</code>
       */
      public Builder clearIdExtractorDeadline() {
        
        idExtractorDeadline_ = 0L;
        onChanged();
        return this;
      }

      private long sessionLifetime_ ;
      /**
       * <code>optional int64 session_lifetime = 28;</code>
       */
      public long getSessionLifetime() {
        return sessionLifetime_;
      }
      /**
       * <code>optional int64 session_lifetime = 28;</code>
       */
      public Builder setSessionLifetime(long value) {
        
        sessionLifetime_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 session_lifetime = 28;</code>
       */
      public Builder clearSessionLifetime() {
        
        sessionLifetime_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:coprocess.SessionState)
    }

    // @@protoc_insertion_point(class_scope:coprocess.SessionState)
    private static final coprocess.CoprocessSessionState.SessionState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new coprocess.CoprocessSessionState.SessionState();
    }

    public static coprocess.CoprocessSessionState.SessionState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public coprocess.CoprocessSessionState.SessionState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_AccessSpec_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_AccessSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_AccessDefinition_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_AccessDefinition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_BasicAuthData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_BasicAuthData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_JWTData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_JWTData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_Monitor_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_Monitor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_SessionState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_SessionState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_SessionState_AccessRightsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_SessionState_AccessRightsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_coprocess_SessionState_OauthKeysEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_coprocess_SessionState_OauthKeysEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035coprocess_session_state.proto\022\tcoproce" +
      "ss\"*\n\nAccessSpec\022\013\n\003url\030\001 \001(\t\022\017\n\007methods" +
      "\030\002 \003(\t\"s\n\020AccessDefinition\022\020\n\010api_name\030\001" +
      " \001(\t\022\016\n\006api_id\030\002 \001(\t\022\020\n\010versions\030\003 \003(\t\022+" +
      "\n\014allowed_urls\030\004 \003(\0132\025.coprocess.AccessS" +
      "pec\"/\n\rBasicAuthData\022\020\n\010password\030\001 \001(\t\022\014" +
      "\n\004hash\030\002 \001(\t\"\031\n\007JWTData\022\016\n\006secret\030\001 \001(\t\"" +
      "!\n\007Monitor\022\026\n\016trigger_limits\030\001 \003(\001\"\370\006\n\014S" +
      "essionState\022\022\n\nlast_check\030\001 \001(\003\022\021\n\tallow" +
      "ance\030\002 \001(\001\022\014\n\004rate\030\003 \001(\001\022\013\n\003per\030\004 \001(\001\022\017\n",
      "\007expires\030\005 \001(\003\022\021\n\tquota_max\030\006 \001(\003\022\024\n\014quo" +
      "ta_renews\030\007 \001(\003\022\027\n\017quota_remaining\030\010 \001(\003" +
      "\022\032\n\022quota_renewal_rate\030\t \001(\003\022@\n\raccess_r" +
      "ights\030\n \003(\0132).coprocess.SessionState.Acc" +
      "essRightsEntry\022\016\n\006org_id\030\013 \001(\t\022\027\n\017oauth_" +
      "client_id\030\014 \001(\t\022:\n\noauth_keys\030\r \003(\0132&.co" +
      "process.SessionState.OauthKeysEntry\0221\n\017b" +
      "asic_auth_data\030\016 \001(\0132\030.coprocess.BasicAu" +
      "thData\022$\n\010jwt_data\030\017 \001(\0132\022.coprocess.JWT" +
      "Data\022\024\n\014hmac_enabled\030\020 \001(\010\022\023\n\013hmac_secre",
      "t\030\021 \001(\t\022\023\n\013is_inactive\030\022 \001(\010\022\027\n\017apply_po" +
      "licy_id\030\023 \001(\t\022\024\n\014data_expires\030\024 \001(\003\022#\n\007m" +
      "onitor\030\025 \001(\0132\022.coprocess.Monitor\022!\n\031enab" +
      "le_detailed_recording\030\026 \001(\010\022\020\n\010metadata\030" +
      "\027 \001(\t\022\014\n\004tags\030\030 \003(\t\022\r\n\005alias\030\031 \001(\t\022\024\n\014la" +
      "st_updated\030\032 \001(\t\022\035\n\025id_extractor_deadlin" +
      "e\030\033 \001(\003\022\030\n\020session_lifetime\030\034 \001(\003\032P\n\021Acc" +
      "essRightsEntry\022\013\n\003key\030\001 \001(\t\022*\n\005value\030\002 \001" +
      "(\0132\033.coprocess.AccessDefinition:\0028\001\0320\n\016O" +
      "authKeysEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(",
      "\t:\0028\001b\006proto3"
    };
    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[] {
        }, assigner);
    internal_static_coprocess_AccessSpec_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_coprocess_AccessSpec_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_AccessSpec_descriptor,
        new java.lang.String[] { "Url", "Methods", });
    internal_static_coprocess_AccessDefinition_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_coprocess_AccessDefinition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_AccessDefinition_descriptor,
        new java.lang.String[] { "ApiName", "ApiId", "Versions", "AllowedUrls", });
    internal_static_coprocess_BasicAuthData_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_coprocess_BasicAuthData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_BasicAuthData_descriptor,
        new java.lang.String[] { "Password", "Hash", });
    internal_static_coprocess_JWTData_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_coprocess_JWTData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_JWTData_descriptor,
        new java.lang.String[] { "Secret", });
    internal_static_coprocess_Monitor_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_coprocess_Monitor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_Monitor_descriptor,
        new java.lang.String[] { "TriggerLimits", });
    internal_static_coprocess_SessionState_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_coprocess_SessionState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_SessionState_descriptor,
        new java.lang.String[] { "LastCheck", "Allowance", "Rate", "Per", "Expires", "QuotaMax", "QuotaRenews", "QuotaRemaining", "QuotaRenewalRate", "AccessRights", "OrgId", "OauthClientId", "OauthKeys", "BasicAuthData", "JwtData", "HmacEnabled", "HmacSecret", "IsInactive", "ApplyPolicyId", "DataExpires", "Monitor", "EnableDetailedRecording", "Metadata", "Tags", "Alias", "LastUpdated", "IdExtractorDeadline", "SessionLifetime", });
    internal_static_coprocess_SessionState_AccessRightsEntry_descriptor =
      internal_static_coprocess_SessionState_descriptor.getNestedTypes().get(0);
    internal_static_coprocess_SessionState_AccessRightsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_SessionState_AccessRightsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_coprocess_SessionState_OauthKeysEntry_descriptor =
      internal_static_coprocess_SessionState_descriptor.getNestedTypes().get(1);
    internal_static_coprocess_SessionState_OauthKeysEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_coprocess_SessionState_OauthKeysEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
