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

package greptime.v1.meta;

public final class StoreOuterClass {
  private StoreOuterClass() {}
  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 RangeRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.RangeRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * key is the first key for the range, If range_end is not given, the
     * request only looks up key.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    com.google.protobuf.ByteString getKey();

    /**
     * <pre>
     * range_end is the upper bound on the requested range [key, range_end).
     * If range_end is '&#92;0', the range is all keys &gt;= key.
     * If range_end is key plus one (e.g., "aa"+1 == "ab", "a&#92;xff"+1 == "b"),
     * then the range request gets all keys prefixed with key.
     * If both key and range_end are '&#92;0', then the range request returns all
     * keys.
     * </pre>
     *
     * <code>bytes range_end = 3;</code>
     * @return The rangeEnd.
     */
    com.google.protobuf.ByteString getRangeEnd();

    /**
     * <pre>
     * limit is a limit on the number of keys returned for the request. When
     * limit is set to 0, it is treated as no limit.
     * </pre>
     *
     * <code>int64 limit = 4;</code>
     * @return The limit.
     */
    long getLimit();

    /**
     * <pre>
     * keys_only when set returns only the keys and not the values.
     * </pre>
     *
     * <code>bool keys_only = 5;</code>
     * @return The keysOnly.
     */
    boolean getKeysOnly();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.RangeRequest}
   */
  public static final class RangeRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.RangeRequest)
      RangeRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RangeRequest.newBuilder() to construct.
    private RangeRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RangeRequest() {
      key_ = com.google.protobuf.ByteString.EMPTY;
      rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RangeRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RangeRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              key_ = input.readBytes();
              break;
            }
            case 26: {

              rangeEnd_ = input.readBytes();
              break;
            }
            case 32: {

              limit_ = input.readInt64();
              break;
            }
            case 40: {

              keysOnly_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.RangeRequest.class, greptime.v1.meta.StoreOuterClass.RangeRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KEY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString key_;
    /**
     * <pre>
     * key is the first key for the range, If range_end is not given, the
     * request only looks up key.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getKey() {
      return key_;
    }

    public static final int RANGE_END_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString rangeEnd_;
    /**
     * <pre>
     * range_end is the upper bound on the requested range [key, range_end).
     * If range_end is '&#92;0', the range is all keys &gt;= key.
     * If range_end is key plus one (e.g., "aa"+1 == "ab", "a&#92;xff"+1 == "b"),
     * then the range request gets all keys prefixed with key.
     * If both key and range_end are '&#92;0', then the range request returns all
     * keys.
     * </pre>
     *
     * <code>bytes range_end = 3;</code>
     * @return The rangeEnd.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getRangeEnd() {
      return rangeEnd_;
    }

    public static final int LIMIT_FIELD_NUMBER = 4;
    private long limit_;
    /**
     * <pre>
     * limit is a limit on the number of keys returned for the request. When
     * limit is set to 0, it is treated as no limit.
     * </pre>
     *
     * <code>int64 limit = 4;</code>
     * @return The limit.
     */
    @java.lang.Override
    public long getLimit() {
      return limit_;
    }

    public static final int KEYS_ONLY_FIELD_NUMBER = 5;
    private boolean keysOnly_;
    /**
     * <pre>
     * keys_only when set returns only the keys and not the values.
     * </pre>
     *
     * <code>bool keys_only = 5;</code>
     * @return The keysOnly.
     */
    @java.lang.Override
    public boolean getKeysOnly() {
      return keysOnly_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (!key_.isEmpty()) {
        output.writeBytes(2, key_);
      }
      if (!rangeEnd_.isEmpty()) {
        output.writeBytes(3, rangeEnd_);
      }
      if (limit_ != 0L) {
        output.writeInt64(4, limit_);
      }
      if (keysOnly_ != false) {
        output.writeBool(5, keysOnly_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (!key_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, key_);
      }
      if (!rangeEnd_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, rangeEnd_);
      }
      if (limit_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, limit_);
      }
      if (keysOnly_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, keysOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.RangeRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.RangeRequest other = (greptime.v1.meta.StoreOuterClass.RangeRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getRangeEnd()
          .equals(other.getRangeEnd())) return false;
      if (getLimit()
          != other.getLimit()) return false;
      if (getKeysOnly()
          != other.getKeysOnly()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (37 * hash) + KEY_FIELD_NUMBER;
      hash = (53 * hash) + getKey().hashCode();
      hash = (37 * hash) + RANGE_END_FIELD_NUMBER;
      hash = (53 * hash) + getRangeEnd().hashCode();
      hash = (37 * hash) + LIMIT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getLimit());
      hash = (37 * hash) + KEYS_ONLY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getKeysOnly());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.RangeRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.RangeRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.RangeRequest)
        greptime.v1.meta.StoreOuterClass.RangeRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.RangeRequest.class, greptime.v1.meta.StoreOuterClass.RangeRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.RangeRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        key_ = com.google.protobuf.ByteString.EMPTY;

        rangeEnd_ = com.google.protobuf.ByteString.EMPTY;

        limit_ = 0L;

        keysOnly_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.RangeRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.RangeRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.RangeRequest build() {
        greptime.v1.meta.StoreOuterClass.RangeRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.RangeRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.RangeRequest result = new greptime.v1.meta.StoreOuterClass.RangeRequest(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        result.key_ = key_;
        result.rangeEnd_ = rangeEnd_;
        result.limit_ = limit_;
        result.keysOnly_ = keysOnly_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.RangeRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.RangeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.RangeRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.RangeRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.getKey() != com.google.protobuf.ByteString.EMPTY) {
          setKey(other.getKey());
        }
        if (other.getRangeEnd() != com.google.protobuf.ByteString.EMPTY) {
          setRangeEnd(other.getRangeEnd());
        }
        if (other.getLimit() != 0L) {
          setLimit(other.getLimit());
        }
        if (other.getKeysOnly() != false) {
          setKeysOnly(other.getKeysOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * key is the first key for the range, If range_end is not given, the
       * request only looks up key.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return The key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getKey() {
        return key_;
      }
      /**
       * <pre>
       * key is the first key for the range, If range_end is not given, the
       * request only looks up key.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * key is the first key for the range, If range_end is not given, the
       * request only looks up key.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * range_end is the upper bound on the requested range [key, range_end).
       * If range_end is '&#92;0', the range is all keys &gt;= key.
       * If range_end is key plus one (e.g., "aa"+1 == "ab", "a&#92;xff"+1 == "b"),
       * then the range request gets all keys prefixed with key.
       * If both key and range_end are '&#92;0', then the range request returns all
       * keys.
       * </pre>
       *
       * <code>bytes range_end = 3;</code>
       * @return The rangeEnd.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getRangeEnd() {
        return rangeEnd_;
      }
      /**
       * <pre>
       * range_end is the upper bound on the requested range [key, range_end).
       * If range_end is '&#92;0', the range is all keys &gt;= key.
       * If range_end is key plus one (e.g., "aa"+1 == "ab", "a&#92;xff"+1 == "b"),
       * then the range request gets all keys prefixed with key.
       * If both key and range_end are '&#92;0', then the range request returns all
       * keys.
       * </pre>
       *
       * <code>bytes range_end = 3;</code>
       * @param value The rangeEnd to set.
       * @return This builder for chaining.
       */
      public Builder setRangeEnd(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rangeEnd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * range_end is the upper bound on the requested range [key, range_end).
       * If range_end is '&#92;0', the range is all keys &gt;= key.
       * If range_end is key plus one (e.g., "aa"+1 == "ab", "a&#92;xff"+1 == "b"),
       * then the range request gets all keys prefixed with key.
       * If both key and range_end are '&#92;0', then the range request returns all
       * keys.
       * </pre>
       *
       * <code>bytes range_end = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRangeEnd() {
        
        rangeEnd_ = getDefaultInstance().getRangeEnd();
        onChanged();
        return this;
      }

      private long limit_ ;
      /**
       * <pre>
       * limit is a limit on the number of keys returned for the request. When
       * limit is set to 0, it is treated as no limit.
       * </pre>
       *
       * <code>int64 limit = 4;</code>
       * @return The limit.
       */
      @java.lang.Override
      public long getLimit() {
        return limit_;
      }
      /**
       * <pre>
       * limit is a limit on the number of keys returned for the request. When
       * limit is set to 0, it is treated as no limit.
       * </pre>
       *
       * <code>int64 limit = 4;</code>
       * @param value The limit to set.
       * @return This builder for chaining.
       */
      public Builder setLimit(long value) {
        
        limit_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * limit is a limit on the number of keys returned for the request. When
       * limit is set to 0, it is treated as no limit.
       * </pre>
       *
       * <code>int64 limit = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLimit() {
        
        limit_ = 0L;
        onChanged();
        return this;
      }

      private boolean keysOnly_ ;
      /**
       * <pre>
       * keys_only when set returns only the keys and not the values.
       * </pre>
       *
       * <code>bool keys_only = 5;</code>
       * @return The keysOnly.
       */
      @java.lang.Override
      public boolean getKeysOnly() {
        return keysOnly_;
      }
      /**
       * <pre>
       * keys_only when set returns only the keys and not the values.
       * </pre>
       *
       * <code>bool keys_only = 5;</code>
       * @param value The keysOnly to set.
       * @return This builder for chaining.
       */
      public Builder setKeysOnly(boolean value) {
        
        keysOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * keys_only when set returns only the keys and not the values.
       * </pre>
       *
       * <code>bool keys_only = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeysOnly() {
        
        keysOnly_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.RangeRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.RangeRequest)
    private static final greptime.v1.meta.StoreOuterClass.RangeRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.RangeRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.RangeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.RangeRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RangeResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.RangeResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    java.util.List<greptime.v1.meta.Common.KeyValue> 
        getKvsList();
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValue getKvs(int index);
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    int getKvsCount();
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getKvsOrBuilderList();
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
        int index);

    /**
     * <pre>
     * more indicates if there are more keys to return in the requested range.
     * </pre>
     *
     * <code>bool more = 3;</code>
     * @return The more.
     */
    boolean getMore();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.RangeResponse}
   */
  public static final class RangeResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.RangeResponse)
      RangeResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RangeResponse.newBuilder() to construct.
    private RangeResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RangeResponse() {
      kvs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RangeResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RangeResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>();
                mutable_bitField0_ |= 0x00000001;
              }
              kvs_.add(
                  input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry));
              break;
            }
            case 24: {

              more_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          kvs_ = java.util.Collections.unmodifiableList(kvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.RangeResponse.class, greptime.v1.meta.StoreOuterClass.RangeResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KVS_FIELD_NUMBER = 2;
    private java.util.List<greptime.v1.meta.Common.KeyValue> kvs_;
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<greptime.v1.meta.Common.KeyValue> getKvsList() {
      return kvs_;
    }
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getKvsOrBuilderList() {
      return kvs_;
    }
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public int getKvsCount() {
      return kvs_.size();
    }
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getKvs(int index) {
      return kvs_.get(index);
    }
    /**
     * <pre>
     * kvs is the list of key-value pairs matched by the range request.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
        int index) {
      return kvs_.get(index);
    }

    public static final int MORE_FIELD_NUMBER = 3;
    private boolean more_;
    /**
     * <pre>
     * more indicates if there are more keys to return in the requested range.
     * </pre>
     *
     * <code>bool more = 3;</code>
     * @return The more.
     */
    @java.lang.Override
    public boolean getMore() {
      return more_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      for (int i = 0; i < kvs_.size(); i++) {
        output.writeMessage(2, kvs_.get(i));
      }
      if (more_ != false) {
        output.writeBool(3, more_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      for (int i = 0; i < kvs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, kvs_.get(i));
      }
      if (more_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, more_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.RangeResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.RangeResponse other = (greptime.v1.meta.StoreOuterClass.RangeResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKvsList()
          .equals(other.getKvsList())) return false;
      if (getMore()
          != other.getMore()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getKvsCount() > 0) {
        hash = (37 * hash) + KVS_FIELD_NUMBER;
        hash = (53 * hash) + getKvsList().hashCode();
      }
      hash = (37 * hash) + MORE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getMore());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.RangeResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.RangeResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.RangeResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.RangeResponse)
        greptime.v1.meta.StoreOuterClass.RangeResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.RangeResponse.class, greptime.v1.meta.StoreOuterClass.RangeResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.RangeResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKvsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kvsBuilder_.clear();
        }
        more_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_RangeResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.RangeResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.RangeResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.RangeResponse build() {
        greptime.v1.meta.StoreOuterClass.RangeResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.RangeResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.RangeResponse result = new greptime.v1.meta.StoreOuterClass.RangeResponse(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (kvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kvs_ = java.util.Collections.unmodifiableList(kvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kvs_ = kvs_;
        } else {
          result.kvs_ = kvsBuilder_.build();
        }
        result.more_ = more_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.RangeResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.RangeResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.RangeResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.RangeResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (kvsBuilder_ == null) {
          if (!other.kvs_.isEmpty()) {
            if (kvs_.isEmpty()) {
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKvsIsMutable();
              kvs_.addAll(other.kvs_);
            }
            onChanged();
          }
        } else {
          if (!other.kvs_.isEmpty()) {
            if (kvsBuilder_.isEmpty()) {
              kvsBuilder_.dispose();
              kvsBuilder_ = null;
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kvsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKvsFieldBuilder() : null;
            } else {
              kvsBuilder_.addAllMessages(other.kvs_);
            }
          }
        }
        if (other.getMore() != false) {
          setMore(other.getMore());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.RangeResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.RangeResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<greptime.v1.meta.Common.KeyValue> kvs_ =
        java.util.Collections.emptyList();
      private void ensureKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          kvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>(kvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> kvsBuilder_;

      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue> getKvsList() {
        if (kvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kvs_);
        } else {
          return kvsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public int getKvsCount() {
        if (kvsBuilder_ == null) {
          return kvs_.size();
        } else {
          return kvsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue getKvs(int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);
        } else {
          return kvsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder setKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.set(index, value);
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder setKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(index, value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addAllKvs(
          java.lang.Iterable<? extends greptime.v1.meta.Common.KeyValue> values) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kvs_);
          onChanged();
        } else {
          kvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder clearKvs() {
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kvsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder removeKvs(int index) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.remove(index);
          onChanged();
        } else {
          kvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getKvsBuilder(
          int index) {
        return getKvsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
          int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);  } else {
          return kvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
           getKvsOrBuilderList() {
        if (kvsBuilder_ != null) {
          return kvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kvs_);
        }
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addKvsBuilder() {
        return getKvsFieldBuilder().addBuilder(
            greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addKvsBuilder(
          int index) {
        return getKvsFieldBuilder().addBuilder(
            index, greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * kvs is the list of key-value pairs matched by the range request.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue.Builder> 
           getKvsBuilderList() {
        return getKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getKvsFieldBuilder() {
        if (kvsBuilder_ == null) {
          kvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  kvs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          kvs_ = null;
        }
        return kvsBuilder_;
      }

      private boolean more_ ;
      /**
       * <pre>
       * more indicates if there are more keys to return in the requested range.
       * </pre>
       *
       * <code>bool more = 3;</code>
       * @return The more.
       */
      @java.lang.Override
      public boolean getMore() {
        return more_;
      }
      /**
       * <pre>
       * more indicates if there are more keys to return in the requested range.
       * </pre>
       *
       * <code>bool more = 3;</code>
       * @param value The more to set.
       * @return This builder for chaining.
       */
      public Builder setMore(boolean value) {
        
        more_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * more indicates if there are more keys to return in the requested range.
       * </pre>
       *
       * <code>bool more = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMore() {
        
        more_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.RangeResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.RangeResponse)
    private static final greptime.v1.meta.StoreOuterClass.RangeResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.RangeResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.RangeResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.RangeResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PutRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.PutRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * key is the key, in bytes, to put into the key-value store.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    com.google.protobuf.ByteString getKey();

    /**
     * <pre>
     * value is the value, in bytes, to associate with the key in the
     * key-value store.
     * </pre>
     *
     * <code>bytes value = 3;</code>
     * @return The value.
     */
    com.google.protobuf.ByteString getValue();

    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pair before changing it.
     * The previous key-value pair will be returned in the put response.
     * </pre>
     *
     * <code>bool prev_kv = 4;</code>
     * @return The prevKv.
     */
    boolean getPrevKv();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.PutRequest}
   */
  public static final class PutRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.PutRequest)
      PutRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PutRequest.newBuilder() to construct.
    private PutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PutRequest() {
      key_ = com.google.protobuf.ByteString.EMPTY;
      value_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PutRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PutRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              key_ = input.readBytes();
              break;
            }
            case 26: {

              value_ = input.readBytes();
              break;
            }
            case 32: {

              prevKv_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.PutRequest.class, greptime.v1.meta.StoreOuterClass.PutRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KEY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString key_;
    /**
     * <pre>
     * key is the key, in bytes, to put into the key-value store.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getKey() {
      return key_;
    }

    public static final int VALUE_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString value_;
    /**
     * <pre>
     * value is the value, in bytes, to associate with the key in the
     * key-value store.
     * </pre>
     *
     * <code>bytes value = 3;</code>
     * @return The value.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }

    public static final int PREV_KV_FIELD_NUMBER = 4;
    private boolean prevKv_;
    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pair before changing it.
     * The previous key-value pair will be returned in the put response.
     * </pre>
     *
     * <code>bool prev_kv = 4;</code>
     * @return The prevKv.
     */
    @java.lang.Override
    public boolean getPrevKv() {
      return prevKv_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (!key_.isEmpty()) {
        output.writeBytes(2, key_);
      }
      if (!value_.isEmpty()) {
        output.writeBytes(3, value_);
      }
      if (prevKv_ != false) {
        output.writeBool(4, prevKv_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (!key_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, key_);
      }
      if (!value_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, value_);
      }
      if (prevKv_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, prevKv_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.PutRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.PutRequest other = (greptime.v1.meta.StoreOuterClass.PutRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getValue()
          .equals(other.getValue())) return false;
      if (getPrevKv()
          != other.getPrevKv()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (37 * hash) + KEY_FIELD_NUMBER;
      hash = (53 * hash) + getKey().hashCode();
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getValue().hashCode();
      hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPrevKv());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.PutRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.PutRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.PutRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.PutRequest)
        greptime.v1.meta.StoreOuterClass.PutRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.PutRequest.class, greptime.v1.meta.StoreOuterClass.PutRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.PutRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        key_ = com.google.protobuf.ByteString.EMPTY;

        value_ = com.google.protobuf.ByteString.EMPTY;

        prevKv_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.PutRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.PutRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.PutRequest build() {
        greptime.v1.meta.StoreOuterClass.PutRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.PutRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.PutRequest result = new greptime.v1.meta.StoreOuterClass.PutRequest(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        result.key_ = key_;
        result.value_ = value_;
        result.prevKv_ = prevKv_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.PutRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.PutRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.PutRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.PutRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.getKey() != com.google.protobuf.ByteString.EMPTY) {
          setKey(other.getKey());
        }
        if (other.getValue() != com.google.protobuf.ByteString.EMPTY) {
          setValue(other.getValue());
        }
        if (other.getPrevKv() != false) {
          setPrevKv(other.getPrevKv());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * key is the key, in bytes, to put into the key-value store.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return The key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getKey() {
        return key_;
      }
      /**
       * <pre>
       * key is the key, in bytes, to put into the key-value store.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * key is the key, in bytes, to put into the key-value store.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * value is the value, in bytes, to associate with the key in the
       * key-value store.
       * </pre>
       *
       * <code>bytes value = 3;</code>
       * @return The value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * <pre>
       * value is the value, in bytes, to associate with the key in the
       * key-value store.
       * </pre>
       *
       * <code>bytes value = 3;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * value is the value, in bytes, to associate with the key in the
       * key-value store.
       * </pre>
       *
       * <code>bytes value = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }

      private boolean prevKv_ ;
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pair before changing it.
       * The previous key-value pair will be returned in the put response.
       * </pre>
       *
       * <code>bool prev_kv = 4;</code>
       * @return The prevKv.
       */
      @java.lang.Override
      public boolean getPrevKv() {
        return prevKv_;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pair before changing it.
       * The previous key-value pair will be returned in the put response.
       * </pre>
       *
       * <code>bool prev_kv = 4;</code>
       * @param value The prevKv to set.
       * @return This builder for chaining.
       */
      public Builder setPrevKv(boolean value) {
        
        prevKv_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pair before changing it.
       * The previous key-value pair will be returned in the put response.
       * </pre>
       *
       * <code>bool prev_kv = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrevKv() {
        
        prevKv_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.PutRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.PutRequest)
    private static final greptime.v1.meta.StoreOuterClass.PutRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.PutRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.PutRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.PutRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PutResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.PutResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pair will be
     * returned.
     * </pre>
     *
     * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
     * @return Whether the prevKv field is set.
     */
    boolean hasPrevKv();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pair will be
     * returned.
     * </pre>
     *
     * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
     * @return The prevKv.
     */
    greptime.v1.meta.Common.KeyValue getPrevKv();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pair will be
     * returned.
     * </pre>
     *
     * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.PutResponse}
   */
  public static final class PutResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.PutResponse)
      PutResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PutResponse.newBuilder() to construct.
    private PutResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PutResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PutResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PutResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              greptime.v1.meta.Common.KeyValue.Builder subBuilder = null;
              if (prevKv_ != null) {
                subBuilder = prevKv_.toBuilder();
              }
              prevKv_ = input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(prevKv_);
                prevKv_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.PutResponse.class, greptime.v1.meta.StoreOuterClass.PutResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int PREV_KV_FIELD_NUMBER = 2;
    private greptime.v1.meta.Common.KeyValue prevKv_;
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pair will be
     * returned.
     * </pre>
     *
     * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
     * @return Whether the prevKv field is set.
     */
    @java.lang.Override
    public boolean hasPrevKv() {
      return prevKv_ != null;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pair will be
     * returned.
     * </pre>
     *
     * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
     * @return The prevKv.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getPrevKv() {
      return prevKv_ == null ? greptime.v1.meta.Common.KeyValue.getDefaultInstance() : prevKv_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pair will be
     * returned.
     * </pre>
     *
     * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvOrBuilder() {
      return getPrevKv();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (prevKv_ != null) {
        output.writeMessage(2, getPrevKv());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (prevKv_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getPrevKv());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.PutResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.PutResponse other = (greptime.v1.meta.StoreOuterClass.PutResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasPrevKv() != other.hasPrevKv()) return false;
      if (hasPrevKv()) {
        if (!getPrevKv()
            .equals(other.getPrevKv())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasPrevKv()) {
        hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
        hash = (53 * hash) + getPrevKv().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.PutResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.PutResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.PutResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.PutResponse)
        greptime.v1.meta.StoreOuterClass.PutResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.PutResponse.class, greptime.v1.meta.StoreOuterClass.PutResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.PutResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (prevKvBuilder_ == null) {
          prevKv_ = null;
        } else {
          prevKv_ = null;
          prevKvBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_PutResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.PutResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.PutResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.PutResponse build() {
        greptime.v1.meta.StoreOuterClass.PutResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.PutResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.PutResponse result = new greptime.v1.meta.StoreOuterClass.PutResponse(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (prevKvBuilder_ == null) {
          result.prevKv_ = prevKv_;
        } else {
          result.prevKv_ = prevKvBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.PutResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.PutResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.PutResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.PutResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasPrevKv()) {
          mergePrevKv(other.getPrevKv());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private greptime.v1.meta.Common.KeyValue prevKv_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> prevKvBuilder_;
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       * @return Whether the prevKv field is set.
       */
      public boolean hasPrevKv() {
        return prevKvBuilder_ != null || prevKv_ != null;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       * @return The prevKv.
       */
      public greptime.v1.meta.Common.KeyValue getPrevKv() {
        if (prevKvBuilder_ == null) {
          return prevKv_ == null ? greptime.v1.meta.Common.KeyValue.getDefaultInstance() : prevKv_;
        } else {
          return prevKvBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      public Builder setPrevKv(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          prevKv_ = value;
          onChanged();
        } else {
          prevKvBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      public Builder setPrevKv(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvBuilder_ == null) {
          prevKv_ = builderForValue.build();
          onChanged();
        } else {
          prevKvBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      public Builder mergePrevKv(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvBuilder_ == null) {
          if (prevKv_ != null) {
            prevKv_ =
              greptime.v1.meta.Common.KeyValue.newBuilder(prevKv_).mergeFrom(value).buildPartial();
          } else {
            prevKv_ = value;
          }
          onChanged();
        } else {
          prevKvBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      public Builder clearPrevKv() {
        if (prevKvBuilder_ == null) {
          prevKv_ = null;
          onChanged();
        } else {
          prevKv_ = null;
          prevKvBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getPrevKvBuilder() {
        
        onChanged();
        return getPrevKvFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvOrBuilder() {
        if (prevKvBuilder_ != null) {
          return prevKvBuilder_.getMessageOrBuilder();
        } else {
          return prevKv_ == null ?
              greptime.v1.meta.Common.KeyValue.getDefaultInstance() : prevKv_;
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pair will be
       * returned.
       * </pre>
       *
       * <code>.greptime.v1.meta.KeyValue prev_kv = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getPrevKvFieldBuilder() {
        if (prevKvBuilder_ == null) {
          prevKvBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  getPrevKv(),
                  getParentForChildren(),
                  isClean());
          prevKv_ = null;
        }
        return prevKvBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.PutResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.PutResponse)
    private static final greptime.v1.meta.StoreOuterClass.PutResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.PutResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.PutResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.PutResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BatchGetRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.BatchGetRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>repeated bytes keys = 2;</code>
     * @return A list containing the keys.
     */
    java.util.List<com.google.protobuf.ByteString> getKeysList();
    /**
     * <code>repeated bytes keys = 2;</code>
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * <code>repeated bytes keys = 2;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    com.google.protobuf.ByteString getKeys(int index);
  }
  /**
   * Protobuf type {@code greptime.v1.meta.BatchGetRequest}
   */
  public static final class BatchGetRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.BatchGetRequest)
      BatchGetRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatchGetRequest.newBuilder() to construct.
    private BatchGetRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatchGetRequest() {
      keys_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatchGetRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BatchGetRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
                mutable_bitField0_ |= 0x00000001;
              }
              keys_.add(input.readBytes());
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          keys_ = java.util.Collections.unmodifiableList(keys_); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.BatchGetRequest.class, greptime.v1.meta.StoreOuterClass.BatchGetRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KEYS_FIELD_NUMBER = 2;
    private java.util.List<com.google.protobuf.ByteString> keys_;
    /**
     * <code>repeated bytes keys = 2;</code>
     * @return A list containing the keys.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getKeysList() {
      return keys_;
    }
    /**
     * <code>repeated bytes keys = 2;</code>
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * <code>repeated bytes keys = 2;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public com.google.protobuf.ByteString getKeys(int index) {
      return keys_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      for (int i = 0; i < keys_.size(); i++) {
        output.writeBytes(2, keys_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(keys_.get(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.BatchGetRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.BatchGetRequest other = (greptime.v1.meta.StoreOuterClass.BatchGetRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKeysList()
          .equals(other.getKeysList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getKeysCount() > 0) {
        hash = (37 * hash) + KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getKeysList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.BatchGetRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.BatchGetRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.BatchGetRequest)
        greptime.v1.meta.StoreOuterClass.BatchGetRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.BatchGetRequest.class, greptime.v1.meta.StoreOuterClass.BatchGetRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.BatchGetRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        keys_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchGetRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.BatchGetRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchGetRequest build() {
        greptime.v1.meta.StoreOuterClass.BatchGetRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchGetRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.BatchGetRequest result = new greptime.v1.meta.StoreOuterClass.BatchGetRequest(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (((bitField0_ & 0x00000001) != 0)) {
          keys_ = java.util.Collections.unmodifiableList(keys_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.keys_ = keys_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.BatchGetRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.BatchGetRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.BatchGetRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.BatchGetRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.BatchGetRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.BatchGetRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<com.google.protobuf.ByteString> keys_ = java.util.Collections.emptyList();
      private void ensureKeysIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>(keys_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @return A list containing the keys.
       */
      public java.util.List<com.google.protobuf.ByteString>
          getKeysList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(keys_) : keys_;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public com.google.protobuf.ByteString getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.BatchGetRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.BatchGetRequest)
    private static final greptime.v1.meta.StoreOuterClass.BatchGetRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.BatchGetRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.BatchGetRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.BatchGetRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BatchGetResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.BatchGetResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    java.util.List<greptime.v1.meta.Common.KeyValue> 
        getKvsList();
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValue getKvs(int index);
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    int getKvsCount();
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getKvsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.meta.BatchGetResponse}
   */
  public static final class BatchGetResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.BatchGetResponse)
      BatchGetResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatchGetResponse.newBuilder() to construct.
    private BatchGetResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatchGetResponse() {
      kvs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatchGetResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BatchGetResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>();
                mutable_bitField0_ |= 0x00000001;
              }
              kvs_.add(
                  input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          kvs_ = java.util.Collections.unmodifiableList(kvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.BatchGetResponse.class, greptime.v1.meta.StoreOuterClass.BatchGetResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KVS_FIELD_NUMBER = 2;
    private java.util.List<greptime.v1.meta.Common.KeyValue> kvs_;
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<greptime.v1.meta.Common.KeyValue> getKvsList() {
      return kvs_;
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getKvsOrBuilderList() {
      return kvs_;
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public int getKvsCount() {
      return kvs_.size();
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getKvs(int index) {
      return kvs_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
        int index) {
      return kvs_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      for (int i = 0; i < kvs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, kvs_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.BatchGetResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.BatchGetResponse other = (greptime.v1.meta.StoreOuterClass.BatchGetResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKvsList()
          .equals(other.getKvsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getKvsCount() > 0) {
        hash = (37 * hash) + KVS_FIELD_NUMBER;
        hash = (53 * hash) + getKvsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.BatchGetResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.BatchGetResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.BatchGetResponse)
        greptime.v1.meta.StoreOuterClass.BatchGetResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.BatchGetResponse.class, greptime.v1.meta.StoreOuterClass.BatchGetResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.BatchGetResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKvsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kvsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchGetResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchGetResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.BatchGetResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchGetResponse build() {
        greptime.v1.meta.StoreOuterClass.BatchGetResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchGetResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.BatchGetResponse result = new greptime.v1.meta.StoreOuterClass.BatchGetResponse(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (kvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kvs_ = java.util.Collections.unmodifiableList(kvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kvs_ = kvs_;
        } else {
          result.kvs_ = kvsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.BatchGetResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.BatchGetResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.BatchGetResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.BatchGetResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (kvsBuilder_ == null) {
          if (!other.kvs_.isEmpty()) {
            if (kvs_.isEmpty()) {
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKvsIsMutable();
              kvs_.addAll(other.kvs_);
            }
            onChanged();
          }
        } else {
          if (!other.kvs_.isEmpty()) {
            if (kvsBuilder_.isEmpty()) {
              kvsBuilder_.dispose();
              kvsBuilder_ = null;
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kvsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKvsFieldBuilder() : null;
            } else {
              kvsBuilder_.addAllMessages(other.kvs_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.BatchGetResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.BatchGetResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<greptime.v1.meta.Common.KeyValue> kvs_ =
        java.util.Collections.emptyList();
      private void ensureKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          kvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>(kvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> kvsBuilder_;

      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue> getKvsList() {
        if (kvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kvs_);
        } else {
          return kvsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public int getKvsCount() {
        if (kvsBuilder_ == null) {
          return kvs_.size();
        } else {
          return kvsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue getKvs(int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);
        } else {
          return kvsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder setKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.set(index, value);
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder setKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(index, value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addAllKvs(
          java.lang.Iterable<? extends greptime.v1.meta.Common.KeyValue> values) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kvs_);
          onChanged();
        } else {
          kvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder clearKvs() {
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kvsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder removeKvs(int index) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.remove(index);
          onChanged();
        } else {
          kvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getKvsBuilder(
          int index) {
        return getKvsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
          int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);  } else {
          return kvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
           getKvsOrBuilderList() {
        if (kvsBuilder_ != null) {
          return kvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kvs_);
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addKvsBuilder() {
        return getKvsFieldBuilder().addBuilder(
            greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addKvsBuilder(
          int index) {
        return getKvsFieldBuilder().addBuilder(
            index, greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue.Builder> 
           getKvsBuilderList() {
        return getKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getKvsFieldBuilder() {
        if (kvsBuilder_ == null) {
          kvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  kvs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          kvs_ = null;
        }
        return kvsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.BatchGetResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.BatchGetResponse)
    private static final greptime.v1.meta.StoreOuterClass.BatchGetResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.BatchGetResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.BatchGetResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.BatchGetResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BatchPutRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.BatchPutRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    java.util.List<greptime.v1.meta.Common.KeyValue> 
        getKvsList();
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValue getKvs(int index);
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    int getKvsCount();
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getKvsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
        int index);

    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pairs before changing it.
     * The previous key-value pairs will be returned in the batch put response.
     * </pre>
     *
     * <code>bool prev_kv = 3;</code>
     * @return The prevKv.
     */
    boolean getPrevKv();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.BatchPutRequest}
   */
  public static final class BatchPutRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.BatchPutRequest)
      BatchPutRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatchPutRequest.newBuilder() to construct.
    private BatchPutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatchPutRequest() {
      kvs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatchPutRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BatchPutRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>();
                mutable_bitField0_ |= 0x00000001;
              }
              kvs_.add(
                  input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry));
              break;
            }
            case 24: {

              prevKv_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          kvs_ = java.util.Collections.unmodifiableList(kvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.BatchPutRequest.class, greptime.v1.meta.StoreOuterClass.BatchPutRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KVS_FIELD_NUMBER = 2;
    private java.util.List<greptime.v1.meta.Common.KeyValue> kvs_;
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<greptime.v1.meta.Common.KeyValue> getKvsList() {
      return kvs_;
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getKvsOrBuilderList() {
      return kvs_;
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public int getKvsCount() {
      return kvs_.size();
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getKvs(int index) {
      return kvs_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
        int index) {
      return kvs_.get(index);
    }

    public static final int PREV_KV_FIELD_NUMBER = 3;
    private boolean prevKv_;
    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pairs before changing it.
     * The previous key-value pairs will be returned in the batch put response.
     * </pre>
     *
     * <code>bool prev_kv = 3;</code>
     * @return The prevKv.
     */
    @java.lang.Override
    public boolean getPrevKv() {
      return prevKv_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      for (int i = 0; i < kvs_.size(); i++) {
        output.writeMessage(2, kvs_.get(i));
      }
      if (prevKv_ != false) {
        output.writeBool(3, prevKv_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      for (int i = 0; i < kvs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, kvs_.get(i));
      }
      if (prevKv_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, prevKv_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.BatchPutRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.BatchPutRequest other = (greptime.v1.meta.StoreOuterClass.BatchPutRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKvsList()
          .equals(other.getKvsList())) return false;
      if (getPrevKv()
          != other.getPrevKv()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getKvsCount() > 0) {
        hash = (37 * hash) + KVS_FIELD_NUMBER;
        hash = (53 * hash) + getKvsList().hashCode();
      }
      hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPrevKv());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.BatchPutRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.BatchPutRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.BatchPutRequest)
        greptime.v1.meta.StoreOuterClass.BatchPutRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.BatchPutRequest.class, greptime.v1.meta.StoreOuterClass.BatchPutRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.BatchPutRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKvsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kvsBuilder_.clear();
        }
        prevKv_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchPutRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.BatchPutRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchPutRequest build() {
        greptime.v1.meta.StoreOuterClass.BatchPutRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchPutRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.BatchPutRequest result = new greptime.v1.meta.StoreOuterClass.BatchPutRequest(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (kvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kvs_ = java.util.Collections.unmodifiableList(kvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kvs_ = kvs_;
        } else {
          result.kvs_ = kvsBuilder_.build();
        }
        result.prevKv_ = prevKv_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.BatchPutRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.BatchPutRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.BatchPutRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.BatchPutRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (kvsBuilder_ == null) {
          if (!other.kvs_.isEmpty()) {
            if (kvs_.isEmpty()) {
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKvsIsMutable();
              kvs_.addAll(other.kvs_);
            }
            onChanged();
          }
        } else {
          if (!other.kvs_.isEmpty()) {
            if (kvsBuilder_.isEmpty()) {
              kvsBuilder_.dispose();
              kvsBuilder_ = null;
              kvs_ = other.kvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kvsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKvsFieldBuilder() : null;
            } else {
              kvsBuilder_.addAllMessages(other.kvs_);
            }
          }
        }
        if (other.getPrevKv() != false) {
          setPrevKv(other.getPrevKv());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.BatchPutRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.BatchPutRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<greptime.v1.meta.Common.KeyValue> kvs_ =
        java.util.Collections.emptyList();
      private void ensureKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          kvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>(kvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> kvsBuilder_;

      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue> getKvsList() {
        if (kvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kvs_);
        } else {
          return kvsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public int getKvsCount() {
        if (kvsBuilder_ == null) {
          return kvs_.size();
        } else {
          return kvsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue getKvs(int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);
        } else {
          return kvsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder setKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.set(index, value);
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder setKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (kvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKvsIsMutable();
          kvs_.add(index, value);
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          kvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder addAllKvs(
          java.lang.Iterable<? extends greptime.v1.meta.Common.KeyValue> values) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kvs_);
          onChanged();
        } else {
          kvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder clearKvs() {
        if (kvsBuilder_ == null) {
          kvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kvsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public Builder removeKvs(int index) {
        if (kvsBuilder_ == null) {
          ensureKvsIsMutable();
          kvs_.remove(index);
          onChanged();
        } else {
          kvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getKvsBuilder(
          int index) {
        return getKvsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getKvsOrBuilder(
          int index) {
        if (kvsBuilder_ == null) {
          return kvs_.get(index);  } else {
          return kvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
           getKvsOrBuilderList() {
        if (kvsBuilder_ != null) {
          return kvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kvs_);
        }
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addKvsBuilder() {
        return getKvsFieldBuilder().addBuilder(
            greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addKvsBuilder(
          int index) {
        return getKvsFieldBuilder().addBuilder(
            index, greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.meta.KeyValue kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue.Builder> 
           getKvsBuilderList() {
        return getKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getKvsFieldBuilder() {
        if (kvsBuilder_ == null) {
          kvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  kvs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          kvs_ = null;
        }
        return kvsBuilder_;
      }

      private boolean prevKv_ ;
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before changing it.
       * The previous key-value pairs will be returned in the batch put response.
       * </pre>
       *
       * <code>bool prev_kv = 3;</code>
       * @return The prevKv.
       */
      @java.lang.Override
      public boolean getPrevKv() {
        return prevKv_;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before changing it.
       * The previous key-value pairs will be returned in the batch put response.
       * </pre>
       *
       * <code>bool prev_kv = 3;</code>
       * @param value The prevKv to set.
       * @return This builder for chaining.
       */
      public Builder setPrevKv(boolean value) {
        
        prevKv_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before changing it.
       * The previous key-value pairs will be returned in the batch put response.
       * </pre>
       *
       * <code>bool prev_kv = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrevKv() {
        
        prevKv_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.BatchPutRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.BatchPutRequest)
    private static final greptime.v1.meta.StoreOuterClass.BatchPutRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.BatchPutRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.BatchPutRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.BatchPutRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BatchPutResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.BatchPutResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    java.util.List<greptime.v1.meta.Common.KeyValue> 
        getPrevKvsList();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValue getPrevKvs(int index);
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    int getPrevKvsCount();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getPrevKvsOrBuilderList();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.meta.BatchPutResponse}
   */
  public static final class BatchPutResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.BatchPutResponse)
      BatchPutResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatchPutResponse.newBuilder() to construct.
    private BatchPutResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatchPutResponse() {
      prevKvs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatchPutResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BatchPutResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                prevKvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>();
                mutable_bitField0_ |= 0x00000001;
              }
              prevKvs_.add(
                  input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.BatchPutResponse.class, greptime.v1.meta.StoreOuterClass.BatchPutResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int PREV_KVS_FIELD_NUMBER = 2;
    private java.util.List<greptime.v1.meta.Common.KeyValue> prevKvs_;
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<greptime.v1.meta.Common.KeyValue> getPrevKvsList() {
      return prevKvs_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getPrevKvsOrBuilderList() {
      return prevKvs_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public int getPrevKvsCount() {
      return prevKvs_.size();
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getPrevKvs(int index) {
      return prevKvs_.get(index);
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
        int index) {
      return prevKvs_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      for (int i = 0; i < prevKvs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, prevKvs_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.BatchPutResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.BatchPutResponse other = (greptime.v1.meta.StoreOuterClass.BatchPutResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getPrevKvsList()
          .equals(other.getPrevKvsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getPrevKvsCount() > 0) {
        hash = (37 * hash) + PREV_KVS_FIELD_NUMBER;
        hash = (53 * hash) + getPrevKvsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.BatchPutResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.BatchPutResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.BatchPutResponse)
        greptime.v1.meta.StoreOuterClass.BatchPutResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.BatchPutResponse.class, greptime.v1.meta.StoreOuterClass.BatchPutResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.BatchPutResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPrevKvsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (prevKvsBuilder_ == null) {
          prevKvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          prevKvsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchPutResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchPutResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.BatchPutResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchPutResponse build() {
        greptime.v1.meta.StoreOuterClass.BatchPutResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchPutResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.BatchPutResponse result = new greptime.v1.meta.StoreOuterClass.BatchPutResponse(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (prevKvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.prevKvs_ = prevKvs_;
        } else {
          result.prevKvs_ = prevKvsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.BatchPutResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.BatchPutResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.BatchPutResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.BatchPutResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (prevKvsBuilder_ == null) {
          if (!other.prevKvs_.isEmpty()) {
            if (prevKvs_.isEmpty()) {
              prevKvs_ = other.prevKvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePrevKvsIsMutable();
              prevKvs_.addAll(other.prevKvs_);
            }
            onChanged();
          }
        } else {
          if (!other.prevKvs_.isEmpty()) {
            if (prevKvsBuilder_.isEmpty()) {
              prevKvsBuilder_.dispose();
              prevKvsBuilder_ = null;
              prevKvs_ = other.prevKvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              prevKvsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPrevKvsFieldBuilder() : null;
            } else {
              prevKvsBuilder_.addAllMessages(other.prevKvs_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.BatchPutResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.BatchPutResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<greptime.v1.meta.Common.KeyValue> prevKvs_ =
        java.util.Collections.emptyList();
      private void ensurePrevKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          prevKvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>(prevKvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> prevKvsBuilder_;

      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue> getPrevKvsList() {
        if (prevKvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(prevKvs_);
        } else {
          return prevKvsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public int getPrevKvsCount() {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.size();
        } else {
          return prevKvsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue getPrevKvs(int index) {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.get(index);
        } else {
          return prevKvsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder setPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.set(index, value);
          onChanged();
        } else {
          prevKvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder setPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.add(value);
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.add(index, value);
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.add(builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addAllPrevKvs(
          java.lang.Iterable<? extends greptime.v1.meta.Common.KeyValue> values) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, prevKvs_);
          onChanged();
        } else {
          prevKvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder clearPrevKvs() {
        if (prevKvsBuilder_ == null) {
          prevKvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          prevKvsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder removePrevKvs(int index) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.remove(index);
          onChanged();
        } else {
          prevKvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getPrevKvsBuilder(
          int index) {
        return getPrevKvsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
          int index) {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.get(index);  } else {
          return prevKvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
           getPrevKvsOrBuilderList() {
        if (prevKvsBuilder_ != null) {
          return prevKvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(prevKvs_);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addPrevKvsBuilder() {
        return getPrevKvsFieldBuilder().addBuilder(
            greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addPrevKvsBuilder(
          int index) {
        return getPrevKvsFieldBuilder().addBuilder(
            index, greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue.Builder> 
           getPrevKvsBuilderList() {
        return getPrevKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getPrevKvsFieldBuilder() {
        if (prevKvsBuilder_ == null) {
          prevKvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  prevKvs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          prevKvs_ = null;
        }
        return prevKvsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.BatchPutResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.BatchPutResponse)
    private static final greptime.v1.meta.StoreOuterClass.BatchPutResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.BatchPutResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.BatchPutResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.BatchPutResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BatchDeleteRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.BatchDeleteRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>repeated bytes keys = 2;</code>
     * @return A list containing the keys.
     */
    java.util.List<com.google.protobuf.ByteString> getKeysList();
    /**
     * <code>repeated bytes keys = 2;</code>
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * <code>repeated bytes keys = 2;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    com.google.protobuf.ByteString getKeys(int index);

    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pairs before deleting it.
     * The previous key-value pairs will be returned in the batch delete response.
     * </pre>
     *
     * <code>bool prev_kv = 3;</code>
     * @return The prevKv.
     */
    boolean getPrevKv();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.BatchDeleteRequest}
   */
  public static final class BatchDeleteRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.BatchDeleteRequest)
      BatchDeleteRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatchDeleteRequest.newBuilder() to construct.
    private BatchDeleteRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatchDeleteRequest() {
      keys_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatchDeleteRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BatchDeleteRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
                mutable_bitField0_ |= 0x00000001;
              }
              keys_.add(input.readBytes());
              break;
            }
            case 24: {

              prevKv_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          keys_ = java.util.Collections.unmodifiableList(keys_); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.class, greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KEYS_FIELD_NUMBER = 2;
    private java.util.List<com.google.protobuf.ByteString> keys_;
    /**
     * <code>repeated bytes keys = 2;</code>
     * @return A list containing the keys.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getKeysList() {
      return keys_;
    }
    /**
     * <code>repeated bytes keys = 2;</code>
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * <code>repeated bytes keys = 2;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public com.google.protobuf.ByteString getKeys(int index) {
      return keys_.get(index);
    }

    public static final int PREV_KV_FIELD_NUMBER = 3;
    private boolean prevKv_;
    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pairs before deleting it.
     * The previous key-value pairs will be returned in the batch delete response.
     * </pre>
     *
     * <code>bool prev_kv = 3;</code>
     * @return The prevKv.
     */
    @java.lang.Override
    public boolean getPrevKv() {
      return prevKv_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      for (int i = 0; i < keys_.size(); i++) {
        output.writeBytes(2, keys_.get(i));
      }
      if (prevKv_ != false) {
        output.writeBool(3, prevKv_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(keys_.get(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      if (prevKv_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, prevKv_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.BatchDeleteRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.BatchDeleteRequest other = (greptime.v1.meta.StoreOuterClass.BatchDeleteRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKeysList()
          .equals(other.getKeysList())) return false;
      if (getPrevKv()
          != other.getPrevKv()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getKeysCount() > 0) {
        hash = (37 * hash) + KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getKeysList().hashCode();
      }
      hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPrevKv());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.BatchDeleteRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.BatchDeleteRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.BatchDeleteRequest)
        greptime.v1.meta.StoreOuterClass.BatchDeleteRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.class, greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        keys_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        prevKv_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchDeleteRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchDeleteRequest build() {
        greptime.v1.meta.StoreOuterClass.BatchDeleteRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchDeleteRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.BatchDeleteRequest result = new greptime.v1.meta.StoreOuterClass.BatchDeleteRequest(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (((bitField0_ & 0x00000001) != 0)) {
          keys_ = java.util.Collections.unmodifiableList(keys_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.keys_ = keys_;
        result.prevKv_ = prevKv_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.BatchDeleteRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.BatchDeleteRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.BatchDeleteRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.BatchDeleteRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          onChanged();
        }
        if (other.getPrevKv() != false) {
          setPrevKv(other.getPrevKv());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.BatchDeleteRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.BatchDeleteRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<com.google.protobuf.ByteString> keys_ = java.util.Collections.emptyList();
      private void ensureKeysIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>(keys_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @return A list containing the keys.
       */
      public java.util.List<com.google.protobuf.ByteString>
          getKeysList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(keys_) : keys_;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public com.google.protobuf.ByteString getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes keys = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private boolean prevKv_ ;
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before deleting it.
       * The previous key-value pairs will be returned in the batch delete response.
       * </pre>
       *
       * <code>bool prev_kv = 3;</code>
       * @return The prevKv.
       */
      @java.lang.Override
      public boolean getPrevKv() {
        return prevKv_;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before deleting it.
       * The previous key-value pairs will be returned in the batch delete response.
       * </pre>
       *
       * <code>bool prev_kv = 3;</code>
       * @param value The prevKv to set.
       * @return This builder for chaining.
       */
      public Builder setPrevKv(boolean value) {
        
        prevKv_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before deleting it.
       * The previous key-value pairs will be returned in the batch delete response.
       * </pre>
       *
       * <code>bool prev_kv = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrevKv() {
        
        prevKv_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.BatchDeleteRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.BatchDeleteRequest)
    private static final greptime.v1.meta.StoreOuterClass.BatchDeleteRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.BatchDeleteRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.BatchDeleteRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.BatchDeleteRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BatchDeleteResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.BatchDeleteResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    java.util.List<greptime.v1.meta.Common.KeyValue> 
        getPrevKvsList();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValue getPrevKvs(int index);
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    int getPrevKvsCount();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getPrevKvsOrBuilderList();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.meta.BatchDeleteResponse}
   */
  public static final class BatchDeleteResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.BatchDeleteResponse)
      BatchDeleteResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatchDeleteResponse.newBuilder() to construct.
    private BatchDeleteResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatchDeleteResponse() {
      prevKvs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatchDeleteResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BatchDeleteResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                prevKvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>();
                mutable_bitField0_ |= 0x00000001;
              }
              prevKvs_.add(
                  input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.class, greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int PREV_KVS_FIELD_NUMBER = 2;
    private java.util.List<greptime.v1.meta.Common.KeyValue> prevKvs_;
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<greptime.v1.meta.Common.KeyValue> getPrevKvsList() {
      return prevKvs_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getPrevKvsOrBuilderList() {
      return prevKvs_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public int getPrevKvsCount() {
      return prevKvs_.size();
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getPrevKvs(int index) {
      return prevKvs_.get(index);
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
        int index) {
      return prevKvs_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      for (int i = 0; i < prevKvs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, prevKvs_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.BatchDeleteResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.BatchDeleteResponse other = (greptime.v1.meta.StoreOuterClass.BatchDeleteResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getPrevKvsList()
          .equals(other.getPrevKvsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (getPrevKvsCount() > 0) {
        hash = (37 * hash) + PREV_KVS_FIELD_NUMBER;
        hash = (53 * hash) + getPrevKvsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.BatchDeleteResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.BatchDeleteResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.BatchDeleteResponse)
        greptime.v1.meta.StoreOuterClass.BatchDeleteResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.class, greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPrevKvsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (prevKvsBuilder_ == null) {
          prevKvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          prevKvsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_BatchDeleteResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchDeleteResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchDeleteResponse build() {
        greptime.v1.meta.StoreOuterClass.BatchDeleteResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.BatchDeleteResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.BatchDeleteResponse result = new greptime.v1.meta.StoreOuterClass.BatchDeleteResponse(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (prevKvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.prevKvs_ = prevKvs_;
        } else {
          result.prevKvs_ = prevKvsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.BatchDeleteResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.BatchDeleteResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.BatchDeleteResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.BatchDeleteResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (prevKvsBuilder_ == null) {
          if (!other.prevKvs_.isEmpty()) {
            if (prevKvs_.isEmpty()) {
              prevKvs_ = other.prevKvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePrevKvsIsMutable();
              prevKvs_.addAll(other.prevKvs_);
            }
            onChanged();
          }
        } else {
          if (!other.prevKvs_.isEmpty()) {
            if (prevKvsBuilder_.isEmpty()) {
              prevKvsBuilder_.dispose();
              prevKvsBuilder_ = null;
              prevKvs_ = other.prevKvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              prevKvsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPrevKvsFieldBuilder() : null;
            } else {
              prevKvsBuilder_.addAllMessages(other.prevKvs_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.BatchDeleteResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.BatchDeleteResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.util.List<greptime.v1.meta.Common.KeyValue> prevKvs_ =
        java.util.Collections.emptyList();
      private void ensurePrevKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          prevKvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>(prevKvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> prevKvsBuilder_;

      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue> getPrevKvsList() {
        if (prevKvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(prevKvs_);
        } else {
          return prevKvsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public int getPrevKvsCount() {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.size();
        } else {
          return prevKvsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue getPrevKvs(int index) {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.get(index);
        } else {
          return prevKvsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder setPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.set(index, value);
          onChanged();
        } else {
          prevKvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder setPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.add(value);
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.add(index, value);
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.add(builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder addAllPrevKvs(
          java.lang.Iterable<? extends greptime.v1.meta.Common.KeyValue> values) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, prevKvs_);
          onChanged();
        } else {
          prevKvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder clearPrevKvs() {
        if (prevKvsBuilder_ == null) {
          prevKvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          prevKvsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public Builder removePrevKvs(int index) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.remove(index);
          onChanged();
        } else {
          prevKvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getPrevKvsBuilder(
          int index) {
        return getPrevKvsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
          int index) {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.get(index);  } else {
          return prevKvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
           getPrevKvsOrBuilderList() {
        if (prevKvsBuilder_ != null) {
          return prevKvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(prevKvs_);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addPrevKvsBuilder() {
        return getPrevKvsFieldBuilder().addBuilder(
            greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addPrevKvsBuilder(
          int index) {
        return getPrevKvsFieldBuilder().addBuilder(
            index, greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 2;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue.Builder> 
           getPrevKvsBuilderList() {
        return getPrevKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getPrevKvsFieldBuilder() {
        if (prevKvsBuilder_ == null) {
          prevKvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  prevKvs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          prevKvs_ = null;
        }
        return prevKvsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.BatchDeleteResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.BatchDeleteResponse)
    private static final greptime.v1.meta.StoreOuterClass.BatchDeleteResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.BatchDeleteResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.BatchDeleteResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.BatchDeleteResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CompareAndPutRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.CompareAndPutRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * key is the key, in bytes, to put into the key-value store.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    com.google.protobuf.ByteString getKey();

    /**
     * <pre>
     * expect is the previous value, in bytes
     * </pre>
     *
     * <code>bytes expect = 3;</code>
     * @return The expect.
     */
    com.google.protobuf.ByteString getExpect();

    /**
     * <pre>
     * value is the value, in bytes, to associate with the key in the
     * key-value store.
     * </pre>
     *
     * <code>bytes value = 4;</code>
     * @return The value.
     */
    com.google.protobuf.ByteString getValue();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.CompareAndPutRequest}
   */
  public static final class CompareAndPutRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.CompareAndPutRequest)
      CompareAndPutRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CompareAndPutRequest.newBuilder() to construct.
    private CompareAndPutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CompareAndPutRequest() {
      key_ = com.google.protobuf.ByteString.EMPTY;
      expect_ = com.google.protobuf.ByteString.EMPTY;
      value_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CompareAndPutRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CompareAndPutRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              key_ = input.readBytes();
              break;
            }
            case 26: {

              expect_ = input.readBytes();
              break;
            }
            case 34: {

              value_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.class, greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KEY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString key_;
    /**
     * <pre>
     * key is the key, in bytes, to put into the key-value store.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getKey() {
      return key_;
    }

    public static final int EXPECT_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString expect_;
    /**
     * <pre>
     * expect is the previous value, in bytes
     * </pre>
     *
     * <code>bytes expect = 3;</code>
     * @return The expect.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getExpect() {
      return expect_;
    }

    public static final int VALUE_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString value_;
    /**
     * <pre>
     * value is the value, in bytes, to associate with the key in the
     * key-value store.
     * </pre>
     *
     * <code>bytes value = 4;</code>
     * @return The value.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (!key_.isEmpty()) {
        output.writeBytes(2, key_);
      }
      if (!expect_.isEmpty()) {
        output.writeBytes(3, expect_);
      }
      if (!value_.isEmpty()) {
        output.writeBytes(4, value_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (!key_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, key_);
      }
      if (!expect_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, expect_);
      }
      if (!value_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.CompareAndPutRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.CompareAndPutRequest other = (greptime.v1.meta.StoreOuterClass.CompareAndPutRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getExpect()
          .equals(other.getExpect())) return false;
      if (!getValue()
          .equals(other.getValue())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (37 * hash) + KEY_FIELD_NUMBER;
      hash = (53 * hash) + getKey().hashCode();
      hash = (37 * hash) + EXPECT_FIELD_NUMBER;
      hash = (53 * hash) + getExpect().hashCode();
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getValue().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.CompareAndPutRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.CompareAndPutRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.CompareAndPutRequest)
        greptime.v1.meta.StoreOuterClass.CompareAndPutRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.class, greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        key_ = com.google.protobuf.ByteString.EMPTY;

        expect_ = com.google.protobuf.ByteString.EMPTY;

        value_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.CompareAndPutRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.CompareAndPutRequest build() {
        greptime.v1.meta.StoreOuterClass.CompareAndPutRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.CompareAndPutRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.CompareAndPutRequest result = new greptime.v1.meta.StoreOuterClass.CompareAndPutRequest(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        result.key_ = key_;
        result.expect_ = expect_;
        result.value_ = value_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.CompareAndPutRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.CompareAndPutRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.CompareAndPutRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.CompareAndPutRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.getKey() != com.google.protobuf.ByteString.EMPTY) {
          setKey(other.getKey());
        }
        if (other.getExpect() != com.google.protobuf.ByteString.EMPTY) {
          setExpect(other.getExpect());
        }
        if (other.getValue() != com.google.protobuf.ByteString.EMPTY) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * key is the key, in bytes, to put into the key-value store.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return The key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getKey() {
        return key_;
      }
      /**
       * <pre>
       * key is the key, in bytes, to put into the key-value store.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * key is the key, in bytes, to put into the key-value store.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString expect_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * expect is the previous value, in bytes
       * </pre>
       *
       * <code>bytes expect = 3;</code>
       * @return The expect.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getExpect() {
        return expect_;
      }
      /**
       * <pre>
       * expect is the previous value, in bytes
       * </pre>
       *
       * <code>bytes expect = 3;</code>
       * @param value The expect to set.
       * @return This builder for chaining.
       */
      public Builder setExpect(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        expect_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * expect is the previous value, in bytes
       * </pre>
       *
       * <code>bytes expect = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearExpect() {
        
        expect_ = getDefaultInstance().getExpect();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * value is the value, in bytes, to associate with the key in the
       * key-value store.
       * </pre>
       *
       * <code>bytes value = 4;</code>
       * @return The value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * <pre>
       * value is the value, in bytes, to associate with the key in the
       * key-value store.
       * </pre>
       *
       * <code>bytes value = 4;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * value is the value, in bytes, to associate with the key in the
       * key-value store.
       * </pre>
       *
       * <code>bytes value = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.CompareAndPutRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.CompareAndPutRequest)
    private static final greptime.v1.meta.StoreOuterClass.CompareAndPutRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.CompareAndPutRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.CompareAndPutRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.CompareAndPutRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CompareAndPutResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.CompareAndPutResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <code>bool success = 2;</code>
     * @return The success.
     */
    boolean getSuccess();

    /**
     * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
     * @return Whether the prevKv field is set.
     */
    boolean hasPrevKv();
    /**
     * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
     * @return The prevKv.
     */
    greptime.v1.meta.Common.KeyValue getPrevKv();
    /**
     * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.CompareAndPutResponse}
   */
  public static final class CompareAndPutResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.CompareAndPutResponse)
      CompareAndPutResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CompareAndPutResponse.newBuilder() to construct.
    private CompareAndPutResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CompareAndPutResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CompareAndPutResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CompareAndPutResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {

              success_ = input.readBool();
              break;
            }
            case 26: {
              greptime.v1.meta.Common.KeyValue.Builder subBuilder = null;
              if (prevKv_ != null) {
                subBuilder = prevKv_.toBuilder();
              }
              prevKv_ = input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(prevKv_);
                prevKv_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.class, greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int SUCCESS_FIELD_NUMBER = 2;
    private boolean success_;
    /**
     * <code>bool success = 2;</code>
     * @return The success.
     */
    @java.lang.Override
    public boolean getSuccess() {
      return success_;
    }

    public static final int PREV_KV_FIELD_NUMBER = 3;
    private greptime.v1.meta.Common.KeyValue prevKv_;
    /**
     * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
     * @return Whether the prevKv field is set.
     */
    @java.lang.Override
    public boolean hasPrevKv() {
      return prevKv_ != null;
    }
    /**
     * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
     * @return The prevKv.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getPrevKv() {
      return prevKv_ == null ? greptime.v1.meta.Common.KeyValue.getDefaultInstance() : prevKv_;
    }
    /**
     * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvOrBuilder() {
      return getPrevKv();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (success_ != false) {
        output.writeBool(2, success_);
      }
      if (prevKv_ != null) {
        output.writeMessage(3, getPrevKv());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (success_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, success_);
      }
      if (prevKv_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPrevKv());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.CompareAndPutResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.CompareAndPutResponse other = (greptime.v1.meta.StoreOuterClass.CompareAndPutResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (getSuccess()
          != other.getSuccess()) return false;
      if (hasPrevKv() != other.hasPrevKv()) return false;
      if (hasPrevKv()) {
        if (!getPrevKv()
            .equals(other.getPrevKv())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSuccess());
      if (hasPrevKv()) {
        hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
        hash = (53 * hash) + getPrevKv().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.CompareAndPutResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.CompareAndPutResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.CompareAndPutResponse)
        greptime.v1.meta.StoreOuterClass.CompareAndPutResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.class, greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        success_ = false;

        if (prevKvBuilder_ == null) {
          prevKv_ = null;
        } else {
          prevKv_ = null;
          prevKvBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_CompareAndPutResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.CompareAndPutResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.CompareAndPutResponse build() {
        greptime.v1.meta.StoreOuterClass.CompareAndPutResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.CompareAndPutResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.CompareAndPutResponse result = new greptime.v1.meta.StoreOuterClass.CompareAndPutResponse(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        result.success_ = success_;
        if (prevKvBuilder_ == null) {
          result.prevKv_ = prevKv_;
        } else {
          result.prevKv_ = prevKvBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.CompareAndPutResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.CompareAndPutResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.CompareAndPutResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.CompareAndPutResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.getSuccess() != false) {
          setSuccess(other.getSuccess());
        }
        if (other.hasPrevKv()) {
          mergePrevKv(other.getPrevKv());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private boolean success_ ;
      /**
       * <code>bool success = 2;</code>
       * @return The success.
       */
      @java.lang.Override
      public boolean getSuccess() {
        return success_;
      }
      /**
       * <code>bool success = 2;</code>
       * @param value The success to set.
       * @return This builder for chaining.
       */
      public Builder setSuccess(boolean value) {
        
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool success = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSuccess() {
        
        success_ = false;
        onChanged();
        return this;
      }

      private greptime.v1.meta.Common.KeyValue prevKv_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> prevKvBuilder_;
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       * @return Whether the prevKv field is set.
       */
      public boolean hasPrevKv() {
        return prevKvBuilder_ != null || prevKv_ != null;
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       * @return The prevKv.
       */
      public greptime.v1.meta.Common.KeyValue getPrevKv() {
        if (prevKvBuilder_ == null) {
          return prevKv_ == null ? greptime.v1.meta.Common.KeyValue.getDefaultInstance() : prevKv_;
        } else {
          return prevKvBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      public Builder setPrevKv(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          prevKv_ = value;
          onChanged();
        } else {
          prevKvBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      public Builder setPrevKv(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvBuilder_ == null) {
          prevKv_ = builderForValue.build();
          onChanged();
        } else {
          prevKvBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      public Builder mergePrevKv(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvBuilder_ == null) {
          if (prevKv_ != null) {
            prevKv_ =
              greptime.v1.meta.Common.KeyValue.newBuilder(prevKv_).mergeFrom(value).buildPartial();
          } else {
            prevKv_ = value;
          }
          onChanged();
        } else {
          prevKvBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      public Builder clearPrevKv() {
        if (prevKvBuilder_ == null) {
          prevKv_ = null;
          onChanged();
        } else {
          prevKv_ = null;
          prevKvBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getPrevKvBuilder() {
        
        onChanged();
        return getPrevKvFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvOrBuilder() {
        if (prevKvBuilder_ != null) {
          return prevKvBuilder_.getMessageOrBuilder();
        } else {
          return prevKv_ == null ?
              greptime.v1.meta.Common.KeyValue.getDefaultInstance() : prevKv_;
        }
      }
      /**
       * <code>.greptime.v1.meta.KeyValue prev_kv = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getPrevKvFieldBuilder() {
        if (prevKvBuilder_ == null) {
          prevKvBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  getPrevKv(),
                  getParentForChildren(),
                  isClean());
          prevKv_ = null;
        }
        return prevKvBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.CompareAndPutResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.CompareAndPutResponse)
    private static final greptime.v1.meta.StoreOuterClass.CompareAndPutResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.CompareAndPutResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.CompareAndPutResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.CompareAndPutResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteRangeRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.DeleteRangeRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.RequestHeader getHeader();
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * key is the first key to delete in the range.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    com.google.protobuf.ByteString getKey();

    /**
     * <pre>
     * range_end is the key following the last key to delete for the range
     * [key, range_end).
     * If range_end is not given, the range is defined to contain only the key
     * argument.
     * If range_end is one bit larger than the given key, then the range is all
     * the keys with the prefix (the given key).
     * If range_end is '&#92;0', the range is all keys greater than or equal to the
     * key argument.
     * </pre>
     *
     * <code>bytes range_end = 3;</code>
     * @return The rangeEnd.
     */
    com.google.protobuf.ByteString getRangeEnd();

    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pairs before deleting it.
     * The previous key-value pairs will be returned in the delete response.
     * </pre>
     *
     * <code>bool prev_kv = 4;</code>
     * @return The prevKv.
     */
    boolean getPrevKv();
  }
  /**
   * Protobuf type {@code greptime.v1.meta.DeleteRangeRequest}
   */
  public static final class DeleteRangeRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.DeleteRangeRequest)
      DeleteRangeRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRangeRequest.newBuilder() to construct.
    private DeleteRangeRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRangeRequest() {
      key_ = com.google.protobuf.ByteString.EMPTY;
      rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteRangeRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteRangeRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.RequestHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.RequestHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              key_ = input.readBytes();
              break;
            }
            case 26: {

              rangeEnd_ = input.readBytes();
              break;
            }
            case 32: {

              prevKv_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.class, greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.RequestHeader header_;
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int KEY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString key_;
    /**
     * <pre>
     * key is the first key to delete in the range.
     * </pre>
     *
     * <code>bytes key = 2;</code>
     * @return The key.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getKey() {
      return key_;
    }

    public static final int RANGE_END_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString rangeEnd_;
    /**
     * <pre>
     * range_end is the key following the last key to delete for the range
     * [key, range_end).
     * If range_end is not given, the range is defined to contain only the key
     * argument.
     * If range_end is one bit larger than the given key, then the range is all
     * the keys with the prefix (the given key).
     * If range_end is '&#92;0', the range is all keys greater than or equal to the
     * key argument.
     * </pre>
     *
     * <code>bytes range_end = 3;</code>
     * @return The rangeEnd.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getRangeEnd() {
      return rangeEnd_;
    }

    public static final int PREV_KV_FIELD_NUMBER = 4;
    private boolean prevKv_;
    /**
     * <pre>
     * If prev_kv is set, gets the previous key-value pairs before deleting it.
     * The previous key-value pairs will be returned in the delete response.
     * </pre>
     *
     * <code>bool prev_kv = 4;</code>
     * @return The prevKv.
     */
    @java.lang.Override
    public boolean getPrevKv() {
      return prevKv_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (!key_.isEmpty()) {
        output.writeBytes(2, key_);
      }
      if (!rangeEnd_.isEmpty()) {
        output.writeBytes(3, rangeEnd_);
      }
      if (prevKv_ != false) {
        output.writeBool(4, prevKv_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (!key_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, key_);
      }
      if (!rangeEnd_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, rangeEnd_);
      }
      if (prevKv_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, prevKv_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.DeleteRangeRequest)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.DeleteRangeRequest other = (greptime.v1.meta.StoreOuterClass.DeleteRangeRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getRangeEnd()
          .equals(other.getRangeEnd())) return false;
      if (getPrevKv()
          != other.getPrevKv()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (37 * hash) + KEY_FIELD_NUMBER;
      hash = (53 * hash) + getKey().hashCode();
      hash = (37 * hash) + RANGE_END_FIELD_NUMBER;
      hash = (53 * hash) + getRangeEnd().hashCode();
      hash = (37 * hash) + PREV_KV_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPrevKv());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.DeleteRangeRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.DeleteRangeRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.DeleteRangeRequest)
        greptime.v1.meta.StoreOuterClass.DeleteRangeRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.class, greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        key_ = com.google.protobuf.ByteString.EMPTY;

        rangeEnd_ = com.google.protobuf.ByteString.EMPTY;

        prevKv_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeRequest_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.DeleteRangeRequest getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.DeleteRangeRequest build() {
        greptime.v1.meta.StoreOuterClass.DeleteRangeRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.DeleteRangeRequest buildPartial() {
        greptime.v1.meta.StoreOuterClass.DeleteRangeRequest result = new greptime.v1.meta.StoreOuterClass.DeleteRangeRequest(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        result.key_ = key_;
        result.rangeEnd_ = rangeEnd_;
        result.prevKv_ = prevKv_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.DeleteRangeRequest) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.DeleteRangeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.DeleteRangeRequest other) {
        if (other == greptime.v1.meta.StoreOuterClass.DeleteRangeRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.getKey() != com.google.protobuf.ByteString.EMPTY) {
          setKey(other.getKey());
        }
        if (other.getRangeEnd() != com.google.protobuf.ByteString.EMPTY) {
          setRangeEnd(other.getRangeEnd());
        }
        if (other.getPrevKv() != false) {
          setPrevKv(other.getPrevKv());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private greptime.v1.meta.Common.RequestHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.RequestHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.RequestHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.RequestHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.RequestHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.RequestHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.RequestHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.RequestHeader, greptime.v1.meta.Common.RequestHeader.Builder, greptime.v1.meta.Common.RequestHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * key is the first key to delete in the range.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return The key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getKey() {
        return key_;
      }
      /**
       * <pre>
       * key is the first key to delete in the range.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * key is the first key to delete in the range.
       * </pre>
       *
       * <code>bytes key = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString rangeEnd_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * range_end is the key following the last key to delete for the range
       * [key, range_end).
       * If range_end is not given, the range is defined to contain only the key
       * argument.
       * If range_end is one bit larger than the given key, then the range is all
       * the keys with the prefix (the given key).
       * If range_end is '&#92;0', the range is all keys greater than or equal to the
       * key argument.
       * </pre>
       *
       * <code>bytes range_end = 3;</code>
       * @return The rangeEnd.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getRangeEnd() {
        return rangeEnd_;
      }
      /**
       * <pre>
       * range_end is the key following the last key to delete for the range
       * [key, range_end).
       * If range_end is not given, the range is defined to contain only the key
       * argument.
       * If range_end is one bit larger than the given key, then the range is all
       * the keys with the prefix (the given key).
       * If range_end is '&#92;0', the range is all keys greater than or equal to the
       * key argument.
       * </pre>
       *
       * <code>bytes range_end = 3;</code>
       * @param value The rangeEnd to set.
       * @return This builder for chaining.
       */
      public Builder setRangeEnd(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rangeEnd_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * range_end is the key following the last key to delete for the range
       * [key, range_end).
       * If range_end is not given, the range is defined to contain only the key
       * argument.
       * If range_end is one bit larger than the given key, then the range is all
       * the keys with the prefix (the given key).
       * If range_end is '&#92;0', the range is all keys greater than or equal to the
       * key argument.
       * </pre>
       *
       * <code>bytes range_end = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRangeEnd() {
        
        rangeEnd_ = getDefaultInstance().getRangeEnd();
        onChanged();
        return this;
      }

      private boolean prevKv_ ;
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before deleting it.
       * The previous key-value pairs will be returned in the delete response.
       * </pre>
       *
       * <code>bool prev_kv = 4;</code>
       * @return The prevKv.
       */
      @java.lang.Override
      public boolean getPrevKv() {
        return prevKv_;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before deleting it.
       * The previous key-value pairs will be returned in the delete response.
       * </pre>
       *
       * <code>bool prev_kv = 4;</code>
       * @param value The prevKv to set.
       * @return This builder for chaining.
       */
      public Builder setPrevKv(boolean value) {
        
        prevKv_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set, gets the previous key-value pairs before deleting it.
       * The previous key-value pairs will be returned in the delete response.
       * </pre>
       *
       * <code>bool prev_kv = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrevKv() {
        
        prevKv_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.DeleteRangeRequest)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.DeleteRangeRequest)
    private static final greptime.v1.meta.StoreOuterClass.DeleteRangeRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.DeleteRangeRequest();
    }

    public static greptime.v1.meta.StoreOuterClass.DeleteRangeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.DeleteRangeRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteRangeResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.meta.DeleteRangeResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    greptime.v1.meta.Common.ResponseHeader getHeader();
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * deleted is the number of keys deleted by the delete range request.
     * </pre>
     *
     * <code>int64 deleted = 2;</code>
     * @return The deleted.
     */
    long getDeleted();

    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    java.util.List<greptime.v1.meta.Common.KeyValue> 
        getPrevKvsList();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    greptime.v1.meta.Common.KeyValue getPrevKvs(int index);
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    int getPrevKvsCount();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getPrevKvsOrBuilderList();
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.meta.DeleteRangeResponse}
   */
  public static final class DeleteRangeResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.meta.DeleteRangeResponse)
      DeleteRangeResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteRangeResponse.newBuilder() to construct.
    private DeleteRangeResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeleteRangeResponse() {
      prevKvs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteRangeResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteRangeResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              greptime.v1.meta.Common.ResponseHeader.Builder subBuilder = null;
              if (header_ != null) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(greptime.v1.meta.Common.ResponseHeader.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {

              deleted_ = input.readInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                prevKvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>();
                mutable_bitField0_ |= 0x00000001;
              }
              prevKvs_.add(
                  input.readMessage(greptime.v1.meta.Common.KeyValue.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.class, greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private greptime.v1.meta.Common.ResponseHeader header_;
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeader getHeader() {
      return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
    }
    /**
     * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int DELETED_FIELD_NUMBER = 2;
    private long deleted_;
    /**
     * <pre>
     * deleted is the number of keys deleted by the delete range request.
     * </pre>
     *
     * <code>int64 deleted = 2;</code>
     * @return The deleted.
     */
    @java.lang.Override
    public long getDeleted() {
      return deleted_;
    }

    public static final int PREV_KVS_FIELD_NUMBER = 3;
    private java.util.List<greptime.v1.meta.Common.KeyValue> prevKvs_;
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    @java.lang.Override
    public java.util.List<greptime.v1.meta.Common.KeyValue> getPrevKvsList() {
      return prevKvs_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
        getPrevKvsOrBuilderList() {
      return prevKvs_;
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    @java.lang.Override
    public int getPrevKvsCount() {
      return prevKvs_.size();
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValue getPrevKvs(int index) {
      return prevKvs_.get(index);
    }
    /**
     * <pre>
     * If prev_kv is set in the request, the previous key-value pairs will be
     * returned.
     * </pre>
     *
     * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
     */
    @java.lang.Override
    public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
        int index) {
      return prevKvs_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (deleted_ != 0L) {
        output.writeInt64(2, deleted_);
      }
      for (int i = 0; i < prevKvs_.size(); i++) {
        output.writeMessage(3, prevKvs_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (deleted_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, deleted_);
      }
      for (int i = 0; i < prevKvs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, prevKvs_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof greptime.v1.meta.StoreOuterClass.DeleteRangeResponse)) {
        return super.equals(obj);
      }
      greptime.v1.meta.StoreOuterClass.DeleteRangeResponse other = (greptime.v1.meta.StoreOuterClass.DeleteRangeResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (getDeleted()
          != other.getDeleted()) return false;
      if (!getPrevKvsList()
          .equals(other.getPrevKvsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (37 * hash) + DELETED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getDeleted());
      if (getPrevKvsCount() > 0) {
        hash = (37 * hash) + PREV_KVS_FIELD_NUMBER;
        hash = (53 * hash) + getPrevKvsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(greptime.v1.meta.StoreOuterClass.DeleteRangeResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.meta.DeleteRangeResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.meta.DeleteRangeResponse)
        greptime.v1.meta.StoreOuterClass.DeleteRangeResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.class, greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.Builder.class);
      }

      // Construct using greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPrevKvsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        deleted_ = 0L;

        if (prevKvsBuilder_ == null) {
          prevKvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          prevKvsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return greptime.v1.meta.StoreOuterClass.internal_static_greptime_v1_meta_DeleteRangeResponse_descriptor;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.DeleteRangeResponse getDefaultInstanceForType() {
        return greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.getDefaultInstance();
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.DeleteRangeResponse build() {
        greptime.v1.meta.StoreOuterClass.DeleteRangeResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public greptime.v1.meta.StoreOuterClass.DeleteRangeResponse buildPartial() {
        greptime.v1.meta.StoreOuterClass.DeleteRangeResponse result = new greptime.v1.meta.StoreOuterClass.DeleteRangeResponse(this);
        int from_bitField0_ = bitField0_;
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        result.deleted_ = deleted_;
        if (prevKvsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            prevKvs_ = java.util.Collections.unmodifiableList(prevKvs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.prevKvs_ = prevKvs_;
        } else {
          result.prevKvs_ = prevKvsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof greptime.v1.meta.StoreOuterClass.DeleteRangeResponse) {
          return mergeFrom((greptime.v1.meta.StoreOuterClass.DeleteRangeResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(greptime.v1.meta.StoreOuterClass.DeleteRangeResponse other) {
        if (other == greptime.v1.meta.StoreOuterClass.DeleteRangeResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.getDeleted() != 0L) {
          setDeleted(other.getDeleted());
        }
        if (prevKvsBuilder_ == null) {
          if (!other.prevKvs_.isEmpty()) {
            if (prevKvs_.isEmpty()) {
              prevKvs_ = other.prevKvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePrevKvsIsMutable();
              prevKvs_.addAll(other.prevKvs_);
            }
            onChanged();
          }
        } else {
          if (!other.prevKvs_.isEmpty()) {
            if (prevKvsBuilder_.isEmpty()) {
              prevKvsBuilder_.dispose();
              prevKvsBuilder_ = null;
              prevKvs_ = other.prevKvs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              prevKvsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPrevKvsFieldBuilder() : null;
            } else {
              prevKvsBuilder_.addAllMessages(other.prevKvs_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        greptime.v1.meta.StoreOuterClass.DeleteRangeResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (greptime.v1.meta.StoreOuterClass.DeleteRangeResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private greptime.v1.meta.Common.ResponseHeader header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> headerBuilder_;
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       * @return The header.
       */
      public greptime.v1.meta.Common.ResponseHeader getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder setHeader(
          greptime.v1.meta.Common.ResponseHeader.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder mergeHeader(greptime.v1.meta.Common.ResponseHeader value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              greptime.v1.meta.Common.ResponseHeader.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeader.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      public greptime.v1.meta.Common.ResponseHeaderOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              greptime.v1.meta.Common.ResponseHeader.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.greptime.v1.meta.ResponseHeader header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              greptime.v1.meta.Common.ResponseHeader, greptime.v1.meta.Common.ResponseHeader.Builder, greptime.v1.meta.Common.ResponseHeaderOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long deleted_ ;
      /**
       * <pre>
       * deleted is the number of keys deleted by the delete range request.
       * </pre>
       *
       * <code>int64 deleted = 2;</code>
       * @return The deleted.
       */
      @java.lang.Override
      public long getDeleted() {
        return deleted_;
      }
      /**
       * <pre>
       * deleted is the number of keys deleted by the delete range request.
       * </pre>
       *
       * <code>int64 deleted = 2;</code>
       * @param value The deleted to set.
       * @return This builder for chaining.
       */
      public Builder setDeleted(long value) {
        
        deleted_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * deleted is the number of keys deleted by the delete range request.
       * </pre>
       *
       * <code>int64 deleted = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeleted() {
        
        deleted_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<greptime.v1.meta.Common.KeyValue> prevKvs_ =
        java.util.Collections.emptyList();
      private void ensurePrevKvsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          prevKvs_ = new java.util.ArrayList<greptime.v1.meta.Common.KeyValue>(prevKvs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> prevKvsBuilder_;

      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue> getPrevKvsList() {
        if (prevKvsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(prevKvs_);
        } else {
          return prevKvsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public int getPrevKvsCount() {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.size();
        } else {
          return prevKvsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValue getPrevKvs(int index) {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.get(index);
        } else {
          return prevKvsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder setPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.set(index, value);
          onChanged();
        } else {
          prevKvsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder setPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.set(index, builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder addPrevKvs(greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.add(value);
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder addPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue value) {
        if (prevKvsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePrevKvsIsMutable();
          prevKvs_.add(index, value);
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder addPrevKvs(
          greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.add(builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder addPrevKvs(
          int index, greptime.v1.meta.Common.KeyValue.Builder builderForValue) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.add(index, builderForValue.build());
          onChanged();
        } else {
          prevKvsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder addAllPrevKvs(
          java.lang.Iterable<? extends greptime.v1.meta.Common.KeyValue> values) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, prevKvs_);
          onChanged();
        } else {
          prevKvsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder clearPrevKvs() {
        if (prevKvsBuilder_ == null) {
          prevKvs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          prevKvsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public Builder removePrevKvs(int index) {
        if (prevKvsBuilder_ == null) {
          ensurePrevKvsIsMutable();
          prevKvs_.remove(index);
          onChanged();
        } else {
          prevKvsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder getPrevKvsBuilder(
          int index) {
        return getPrevKvsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValueOrBuilder getPrevKvsOrBuilder(
          int index) {
        if (prevKvsBuilder_ == null) {
          return prevKvs_.get(index);  } else {
          return prevKvsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public java.util.List<? extends greptime.v1.meta.Common.KeyValueOrBuilder> 
           getPrevKvsOrBuilderList() {
        if (prevKvsBuilder_ != null) {
          return prevKvsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(prevKvs_);
        }
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addPrevKvsBuilder() {
        return getPrevKvsFieldBuilder().addBuilder(
            greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public greptime.v1.meta.Common.KeyValue.Builder addPrevKvsBuilder(
          int index) {
        return getPrevKvsFieldBuilder().addBuilder(
            index, greptime.v1.meta.Common.KeyValue.getDefaultInstance());
      }
      /**
       * <pre>
       * If prev_kv is set in the request, the previous key-value pairs will be
       * returned.
       * </pre>
       *
       * <code>repeated .greptime.v1.meta.KeyValue prev_kvs = 3;</code>
       */
      public java.util.List<greptime.v1.meta.Common.KeyValue.Builder> 
           getPrevKvsBuilderList() {
        return getPrevKvsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder> 
          getPrevKvsFieldBuilder() {
        if (prevKvsBuilder_ == null) {
          prevKvsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              greptime.v1.meta.Common.KeyValue, greptime.v1.meta.Common.KeyValue.Builder, greptime.v1.meta.Common.KeyValueOrBuilder>(
                  prevKvs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          prevKvs_ = null;
        }
        return prevKvsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:greptime.v1.meta.DeleteRangeResponse)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.meta.DeleteRangeResponse)
    private static final greptime.v1.meta.StoreOuterClass.DeleteRangeResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new greptime.v1.meta.StoreOuterClass.DeleteRangeResponse();
    }

    public static greptime.v1.meta.StoreOuterClass.DeleteRangeResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public greptime.v1.meta.StoreOuterClass.DeleteRangeResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_RangeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_RangeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_RangeResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_RangeResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_PutRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_PutRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_PutResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_PutResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_BatchGetRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_BatchGetRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_BatchGetResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_BatchGetResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_BatchPutRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_BatchPutRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_BatchPutResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_BatchPutResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_BatchDeleteRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_BatchDeleteRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_BatchDeleteResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_BatchDeleteResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_CompareAndPutRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_CompareAndPutRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_CompareAndPutResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_CompareAndPutResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_DeleteRangeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_DeleteRangeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_meta_DeleteRangeResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_meta_DeleteRangeResponse_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\034greptime/v1/meta/store.proto\022\020greptime" +
      ".v1.meta\032\035greptime/v1/meta/common.proto\"" +
      "\201\001\n\014RangeRequest\022/\n\006header\030\001 \001(\0132\037.grept" +
      "ime.v1.meta.RequestHeader\022\013\n\003key\030\002 \001(\014\022\021" +
      "\n\trange_end\030\003 \001(\014\022\r\n\005limit\030\004 \001(\003\022\021\n\tkeys" +
      "_only\030\005 \001(\010\"x\n\rRangeResponse\0220\n\006header\030\001" +
      " \001(\0132 .greptime.v1.meta.ResponseHeader\022\'" +
      "\n\003kvs\030\002 \003(\0132\032.greptime.v1.meta.KeyValue\022" +
      "\014\n\004more\030\003 \001(\010\"j\n\nPutRequest\022/\n\006header\030\001 " +
      "\001(\0132\037.greptime.v1.meta.RequestHeader\022\013\n\003" +
      "key\030\002 \001(\014\022\r\n\005value\030\003 \001(\014\022\017\n\007prev_kv\030\004 \001(" +
      "\010\"l\n\013PutResponse\0220\n\006header\030\001 \001(\0132 .grept" +
      "ime.v1.meta.ResponseHeader\022+\n\007prev_kv\030\002 " +
      "\001(\0132\032.greptime.v1.meta.KeyValue\"P\n\017Batch" +
      "GetRequest\022/\n\006header\030\001 \001(\0132\037.greptime.v1" +
      ".meta.RequestHeader\022\014\n\004keys\030\002 \003(\014\"m\n\020Bat" +
      "chGetResponse\0220\n\006header\030\001 \001(\0132 .greptime" +
      ".v1.meta.ResponseHeader\022\'\n\003kvs\030\002 \003(\0132\032.g" +
      "reptime.v1.meta.KeyValue\"|\n\017BatchPutRequ" +
      "est\022/\n\006header\030\001 \001(\0132\037.greptime.v1.meta.R" +
      "equestHeader\022\'\n\003kvs\030\002 \003(\0132\032.greptime.v1." +
      "meta.KeyValue\022\017\n\007prev_kv\030\003 \001(\010\"r\n\020BatchP" +
      "utResponse\0220\n\006header\030\001 \001(\0132 .greptime.v1" +
      ".meta.ResponseHeader\022,\n\010prev_kvs\030\002 \003(\0132\032" +
      ".greptime.v1.meta.KeyValue\"d\n\022BatchDelet" +
      "eRequest\022/\n\006header\030\001 \001(\0132\037.greptime.v1.m" +
      "eta.RequestHeader\022\014\n\004keys\030\002 \003(\014\022\017\n\007prev_" +
      "kv\030\003 \001(\010\"u\n\023BatchDeleteResponse\0220\n\006heade" +
      "r\030\001 \001(\0132 .greptime.v1.meta.ResponseHeade" +
      "r\022,\n\010prev_kvs\030\002 \003(\0132\032.greptime.v1.meta.K" +
      "eyValue\"s\n\024CompareAndPutRequest\022/\n\006heade" +
      "r\030\001 \001(\0132\037.greptime.v1.meta.RequestHeader" +
      "\022\013\n\003key\030\002 \001(\014\022\016\n\006expect\030\003 \001(\014\022\r\n\005value\030\004" +
      " \001(\014\"\207\001\n\025CompareAndPutResponse\0220\n\006header" +
      "\030\001 \001(\0132 .greptime.v1.meta.ResponseHeader" +
      "\022\017\n\007success\030\002 \001(\010\022+\n\007prev_kv\030\003 \001(\0132\032.gre" +
      "ptime.v1.meta.KeyValue\"v\n\022DeleteRangeReq" +
      "uest\022/\n\006header\030\001 \001(\0132\037.greptime.v1.meta." +
      "RequestHeader\022\013\n\003key\030\002 \001(\014\022\021\n\trange_end\030" +
      "\003 \001(\014\022\017\n\007prev_kv\030\004 \001(\010\"\206\001\n\023DeleteRangeRe" +
      "sponse\0220\n\006header\030\001 \001(\0132 .greptime.v1.met" +
      "a.ResponseHeader\022\017\n\007deleted\030\002 \001(\003\022,\n\010pre" +
      "v_kvs\030\003 \003(\0132\032.greptime.v1.meta.KeyValue2" +
      "\325\004\n\005Store\022H\n\005Range\022\036.greptime.v1.meta.Ra" +
      "ngeRequest\032\037.greptime.v1.meta.RangeRespo" +
      "nse\022B\n\003Put\022\034.greptime.v1.meta.PutRequest" +
      "\032\035.greptime.v1.meta.PutResponse\022Q\n\010Batch" +
      "Get\022!.greptime.v1.meta.BatchGetRequest\032\"" +
      ".greptime.v1.meta.BatchGetResponse\022Q\n\010Ba" +
      "tchPut\022!.greptime.v1.meta.BatchPutReques" +
      "t\032\".greptime.v1.meta.BatchPutResponse\022Z\n" +
      "\013BatchDelete\022$.greptime.v1.meta.BatchDel" +
      "eteRequest\032%.greptime.v1.meta.BatchDelet" +
      "eResponse\022`\n\rCompareAndPut\022&.greptime.v1" +
      ".meta.CompareAndPutRequest\032\'.greptime.v1" +
      ".meta.CompareAndPutResponse\022Z\n\013DeleteRan" +
      "ge\022$.greptime.v1.meta.DeleteRangeRequest" +
      "\032%.greptime.v1.meta.DeleteRangeResponseB" +
      "<Z:github.com/GreptimeTeam/greptime-prot" +
      "o/go/greptime/v1/metab\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          greptime.v1.meta.Common.getDescriptor(),
        });
    internal_static_greptime_v1_meta_RangeRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_greptime_v1_meta_RangeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_RangeRequest_descriptor,
        new java.lang.String[] { "Header", "Key", "RangeEnd", "Limit", "KeysOnly", });
    internal_static_greptime_v1_meta_RangeResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_greptime_v1_meta_RangeResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_RangeResponse_descriptor,
        new java.lang.String[] { "Header", "Kvs", "More", });
    internal_static_greptime_v1_meta_PutRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_greptime_v1_meta_PutRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_PutRequest_descriptor,
        new java.lang.String[] { "Header", "Key", "Value", "PrevKv", });
    internal_static_greptime_v1_meta_PutResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_greptime_v1_meta_PutResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_PutResponse_descriptor,
        new java.lang.String[] { "Header", "PrevKv", });
    internal_static_greptime_v1_meta_BatchGetRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_greptime_v1_meta_BatchGetRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_BatchGetRequest_descriptor,
        new java.lang.String[] { "Header", "Keys", });
    internal_static_greptime_v1_meta_BatchGetResponse_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_greptime_v1_meta_BatchGetResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_BatchGetResponse_descriptor,
        new java.lang.String[] { "Header", "Kvs", });
    internal_static_greptime_v1_meta_BatchPutRequest_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_greptime_v1_meta_BatchPutRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_BatchPutRequest_descriptor,
        new java.lang.String[] { "Header", "Kvs", "PrevKv", });
    internal_static_greptime_v1_meta_BatchPutResponse_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_greptime_v1_meta_BatchPutResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_BatchPutResponse_descriptor,
        new java.lang.String[] { "Header", "PrevKvs", });
    internal_static_greptime_v1_meta_BatchDeleteRequest_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_greptime_v1_meta_BatchDeleteRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_BatchDeleteRequest_descriptor,
        new java.lang.String[] { "Header", "Keys", "PrevKv", });
    internal_static_greptime_v1_meta_BatchDeleteResponse_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_greptime_v1_meta_BatchDeleteResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_BatchDeleteResponse_descriptor,
        new java.lang.String[] { "Header", "PrevKvs", });
    internal_static_greptime_v1_meta_CompareAndPutRequest_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_greptime_v1_meta_CompareAndPutRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_CompareAndPutRequest_descriptor,
        new java.lang.String[] { "Header", "Key", "Expect", "Value", });
    internal_static_greptime_v1_meta_CompareAndPutResponse_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_greptime_v1_meta_CompareAndPutResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_CompareAndPutResponse_descriptor,
        new java.lang.String[] { "Header", "Success", "PrevKv", });
    internal_static_greptime_v1_meta_DeleteRangeRequest_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_greptime_v1_meta_DeleteRangeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_DeleteRangeRequest_descriptor,
        new java.lang.String[] { "Header", "Key", "RangeEnd", "PrevKv", });
    internal_static_greptime_v1_meta_DeleteRangeResponse_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_greptime_v1_meta_DeleteRangeResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_meta_DeleteRangeResponse_descriptor,
        new java.lang.String[] { "Header", "Deleted", "PrevKvs", });
    greptime.v1.meta.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
