You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2022/10/28 05:04:09 UTC

[skywalking-banyandb] 01/01: Improve building system on Windows:

This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch buf
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit 30af0e1abda3ae068e7457b37a1adf32feae8c62
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Fri Oct 28 00:38:20 2022 +0000

    Improve building system on Windows:
    
      * Remove all generated files
      * Add repo level core.autocrlf
      * Tweak Makefile
      * Add Windows section to CONTRIBUTING.md
    
    Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
 scripts/build/lint-api.mk => .gitattributes        |   21 +-
 .github/workflows/go.yml                           |    4 +
 CONTRIBUTING.md                                    |   52 +-
 Makefile                                           |   18 +-
 api/.gitignore                                     |    8 +
 api/Makefile                                       |    9 +-
 api/proto/banyandb/common/v1/common.pb.go          |  626 --
 api/proto/banyandb/common/v1/common.pb.validate.go |  703 --
 api/proto/banyandb/common/v1/common.proto          |   81 +-
 api/proto/banyandb/database/v1/database.pb.go      |  344 -
 .../banyandb/database/v1/database.pb.validate.go   |  416 -
 api/proto/banyandb/database/v1/database.proto      |   30 +-
 api/proto/banyandb/database/v1/event.pb.go         |  440 -
 .../banyandb/database/v1/event.pb.validate.go      |  494 --
 api/proto/banyandb/database/v1/event.proto         |   36 +-
 api/proto/banyandb/database/v1/rpc.pb.go           | 5256 ------------
 api/proto/banyandb/database/v1/rpc.pb.gw.go        | 3167 -------
 api/proto/banyandb/database/v1/rpc.pb.validate.go  | 8842 --------------------
 api/proto/banyandb/database/v1/rpc.proto           |  295 +-
 api/proto/banyandb/database/v1/rpc_grpc.pb.go      | 1629 ----
 api/proto/banyandb/database/v1/schema.pb.go        | 1631 ----
 .../banyandb/database/v1/schema.pb.validate.go     | 1689 ----
 api/proto/banyandb/database/v1/schema.proto        |    8 +-
 api/proto/banyandb/measure/v1/query.pb.go          |  882 --
 api/proto/banyandb/measure/v1/query.pb.validate.go | 1342 ---
 api/proto/banyandb/measure/v1/query.proto          |   12 +-
 api/proto/banyandb/measure/v1/rpc.pb.go            |  134 -
 api/proto/banyandb/measure/v1/rpc.pb.gw.go         |  169 -
 api/proto/banyandb/measure/v1/rpc.pb.validate.go   |   36 -
 api/proto/banyandb/measure/v1/rpc.proto            |   22 +-
 api/proto/banyandb/measure/v1/rpc_grpc.pb.go       |  210 -
 api/proto/banyandb/measure/v1/topn.pb.go           |  485 --
 api/proto/banyandb/measure/v1/topn.pb.validate.go  |  690 --
 api/proto/banyandb/measure/v1/topn.proto           |   58 +-
 api/proto/banyandb/measure/v1/write.pb.go          |  440 -
 api/proto/banyandb/measure/v1/write.pb.validate.go |  640 --
 api/proto/banyandb/measure/v1/write.proto          |   10 +-
 api/proto/banyandb/model/v1/common.pb.go           |  902 --
 api/proto/banyandb/model/v1/common.pb.validate.go  | 1109 ---
 api/proto/banyandb/model/v1/common.proto           |   60 +-
 api/proto/banyandb/model/v1/query.pb.go            | 1065 ---
 api/proto/banyandb/model/v1/query.pb.validate.go   | 1268 ---
 api/proto/banyandb/model/v1/query.proto            |  114 +-
 api/proto/banyandb/property/v1/property.pb.go      |  288 -
 .../banyandb/property/v1/property.pb.validate.go   |  357 -
 api/proto/banyandb/property/v1/property.proto      |   29 +-
 api/proto/banyandb/property/v1/rpc.pb.go           |  830 --
 api/proto/banyandb/property/v1/rpc.pb.gw.go        |  780 --
 api/proto/banyandb/property/v1/rpc.pb.validate.go  | 1064 ---
 api/proto/banyandb/property/v1/rpc.proto           |   94 +-
 api/proto/banyandb/property/v1/rpc_grpc.pb.go      |  215 -
 api/proto/banyandb/stream/v1/query.pb.go           |  440 -
 api/proto/banyandb/stream/v1/query.pb.validate.go  |  603 --
 api/proto/banyandb/stream/v1/query.proto           |    8 +-
 api/proto/banyandb/stream/v1/rpc.pb.go             |  121 -
 api/proto/banyandb/stream/v1/rpc.pb.gw.go          |  169 -
 api/proto/banyandb/stream/v1/rpc.pb.validate.go    |   36 -
 api/proto/banyandb/stream/v1/rpc.proto             |   20 +-
 api/proto/banyandb/stream/v1/rpc_grpc.pb.go        |  174 -
 api/proto/banyandb/stream/v1/write.pb.go           |  433 -
 api/proto/banyandb/stream/v1/write.pb.validate.go  |  614 --
 api/proto/banyandb/stream/v1/write.proto           |    8 +-
 .../openapi/banyandb/common/v1/common.swagger.json |   43 -
 .../banyandb/database/v1/database.swagger.json     |   43 -
 .../banyandb/database/v1/event.swagger.json        |   43 -
 .../openapi/banyandb/database/v1/rpc.swagger.json  | 2274 -----
 .../banyandb/database/v1/schema.swagger.json       |   43 -
 .../openapi/banyandb/measure/v1/query.swagger.json |   43 -
 .../openapi/banyandb/measure/v1/rpc.swagger.json   |  618 --
 .../openapi/banyandb/measure/v1/topn.swagger.json  |   43 -
 .../openapi/banyandb/measure/v1/write.swagger.json |   43 -
 .../openapi/banyandb/model/v1/common.swagger.json  |   43 -
 .../openapi/banyandb/model/v1/query.swagger.json   |   43 -
 .../banyandb/property/v1/property.swagger.json     |   43 -
 .../openapi/banyandb/property/v1/rpc.swagger.json  |  605 --
 .../openapi/banyandb/stream/v1/query.swagger.json  |   43 -
 .../openapi/banyandb/stream/v1/rpc.swagger.json    |  457 -
 .../openapi/banyandb/stream/v1/write.swagger.json  |   43 -
 scripts/build/lint-api.mk => bydbctl/.gitignore    |   17 +-
 dist/licenses/ui-licenses/license-tslib.txt        |   22 +-
 docs/api-reference.md                              |  106 +-
 scripts/build/lint-api.mk                          |    2 +
 ui/Makefile                                        |   11 +-
 83 files changed, 597 insertions(+), 45761 deletions(-)

diff --git a/scripts/build/lint-api.mk b/.gitattributes
similarity index 69%
copy from scripts/build/lint-api.mk
copy to .gitattributes
index d58f8d0..2035ace 100644
--- a/scripts/build/lint-api.mk
+++ b/.gitattributes
@@ -14,19 +14,14 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-#
-
-LINT_OPTS ?= --timeout 1m0s
-
-include $(mk_dir)lint-bin.mk
 
-##@ Code quality targets
+# Set the default behavior, in case people don't have core.autocrlf set.
+* text=auto
 
-.PHONY: lint
-lint: $(LINTER)
-	@PATH=$(tool_bin):$(proto_dir) $(BUF) lint
-	$(LINTER) --verbose run $(LINT_OPTS) --config $(root_dir)/deprecated-golangci.yml
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.jpeg binary
+*.ico binary
 
-.PHONY: format
-format: $(LINTER)
-	$(LINTER) --verbose run --fix -c $(root_dir)/.golangci-format.yml ./...
+go.sum merge=union
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 8c89b58..153411e 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -50,6 +50,8 @@ jobs:
       - name: Update dependencies 
         if: steps.cache-go.outputs.cache-hit != 'true'
         run: GOPROXY=https://proxy.golang.org go mod download
+      - name: Check requirements
+        run: make check-req
       - name: Generate codes
         run: make generate
       - name: Lint
@@ -81,6 +83,8 @@ jobs:
       - name: Update dependencies 
         if: steps.cache-go.outputs.cache-hit != 'true'
         run: GOPROXY=https://proxy.golang.org go mod download
+      - name: Generate codes
+        run: make generate
       - name: Build
         run: make build
       - name: Build release
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index dad1ab2..706f444 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -37,10 +37,39 @@ Once we've discussed your changes and you've got your code ready, make sure that
 * References the original issue in the description, e.g., "Resolves #123".
 * Has a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
 
+## Requirements
+
+Users who want to build a binary from sources have to set up:
+
+* Go 1.19
+* Node 16.15
+* Git >= 2.30
+* Linux, MacOS or Windows+WSL2
+* GNU make
+
+### Windows
+
+BanyanDB is built on Linux and MacOS that introduced several platform-specific characters to the building system. Therefore, we highly recommend you to use [WSL2+Ubuntu](https://ubuntu.com/wsl) to execute tasks of the Makefile.
+
+#### End of line sequence
+
+BanyanDB ALWAYS use `LF`(`\n`) as the line endings, even on a Windows. So we need your development tool and IDEs to generate new files with `LF` as its end of lines.
+
 ## Building and Testing
 
-Clone the source code and run `make build` in the source directory,
-which will build the default binary file in `<sub_project>/build/bin/`.
+Clone the source code and check the necessary tools by
+
+```shell
+make check-req
+```
+
+Once the checking passes, you should generate files for building by
+
+```shell
+make generate
+```
+
+Finally, run `make build` in the source directory, which will build the default binary file in `<sub_project>/build/bin/`.
 
 ```shell
 make build
@@ -64,21 +93,24 @@ make lint
 
 If you found some errors in the output of the above command, try `make format` to fix some obvious style issues. As for the complicated errors, please correct them manually.
 
-## Test your changes before pushing
+## Update licenses
 
-We have a series of checking tests to verify your changes by
+If you import new dependencies or upgrade an existing one, trigger the licenses generator
+to update the license files.
 
 ```shell
-make pre-push
+make license-dep 
 ```
 
-Please fix any errors raised by the above command.
+> Caveat: This task is a step of `make pre-push`. You can run it to update licenses.
 
-## Update licenses
+## Test your changes before pushing
 
-If you import new dependencies or upgrade an existing one, trigger the licenses generator
-to update the license files.
+After you commit the local changes, we have a series of checking tests to verify your changes by
 
 ```shell
-make license-dep 
+git commit
+make pre-push
 ```
+
+Please fix any errors raised by the above command.
diff --git a/Makefile b/Makefile
index 3de6312..db19f92 100644
--- a/Makefile
+++ b/Makefile
@@ -30,10 +30,11 @@ PROJECTS := ui banyand bydbctl
 ##@ Build targets
 
 clean: TARGET=clean
-clean: PROJECTS:=$(PROJECTS) pkg
+clean: PROJECTS:=api $(PROJECTS) pkg
 clean: default  ## Clean artifacts in all projects
 	rm -rf build
 	rm -f .env
+	rm -f *.out
 
 generate: TARGET=generate
 generate: PROJECTS:=api $(PROJECTS) pkg
@@ -81,26 +82,29 @@ format: PROJECTS:=api $(PROJECTS) pkg scripts/ci/check test
 format: tidy
 format: default ## Run the linters on all projects
 
+check-req: ## Check the requirements
+	@$(MAKE) -C scripts/ci/check test
+	@$(MAKE) -C ui check-version
 
 check: ## Check that the status is consistent with CI
-	$(MAKE) -C scripts/ci/check test
-	$(MAKE) -C ui check-version
-	$(MAKE) license-dep
+	$(MAKE) license-check
 	$(MAKE) format
+	$(MAKE) tidy
+	git add --renormalize .
 	mkdir -p /tmp/artifacts
 	git diff >/tmp/artifacts/check.diff 2>&1
-	go mod tidy
 	@if [ ! -z "`git status -s`" ]; then \
 		echo "Following files are not consistent with CI:"; \
 		git status -s; \
 		cat /tmp/artifacts/check.diff; \
 		exit 1; \
 	fi
-	
+
 pre-push: ## Check source files before pushing to the remote repo
+	$(MAKE) check-req
 	$(MAKE) generate
 	$(MAKE) lint
-	$(MAKE) license-check
+	$(MAKE) license-dep
 	$(MAKE) check
 
 ##@ License targets
diff --git a/api/.gitignore b/api/.gitignore
new file mode 100644
index 0000000..053372e
--- /dev/null
+++ b/api/.gitignore
@@ -0,0 +1,8 @@
+# proto generated files
+
+*pb.go
+*pb.validate.go
+*pb.gw.go
+
+openapi
+api-reference.md
diff --git a/api/Makefile b/api/Makefile
index 8afd3e1..876905f 100644
--- a/api/Makefile
+++ b/api/Makefile
@@ -35,19 +35,14 @@ $(BUF):
 	@rm -f $(tool_bin)/protoc-gen-openapiv2
 	@rm -f $(tool_bin)/protoc-gen-validate
 	@rm -f $(tool_bin)/buf
-	@rm -f $(tool_bin)/protoc-gen-buf-breaking
-	@rm -f $(tool_bin)/protoc-gen-buf-lint
 	@GOBIN=$(tool_bin) go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.0
 	@GOBIN=$(tool_bin) go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0
 	@GOBIN=$(tool_bin) go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1
 	@GOBIN=$(tool_bin) go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@v2.10.3
 	@GOBIN=$(tool_bin) go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@v2.10.3
 	@GOBIN=$(tool_bin) go install github.com/bufbuild/buf/cmd/buf@$(buf_version)
-	@GOBIN=$(tool_bin) go install github.com/bufbuild/buf/cmd/protoc-gen-buf-breaking@$(buf_version)
-	@GOBIN=$(tool_bin) go install github.com/bufbuild/buf/cmd/protoc-gen-buf-lint@$(buf_version)
 	@GOBIN=$(tool_bin) go install github.com/envoyproxy/protoc-gen-validate@v0.6.7
 
 generate: $(BUF)
-	@PATH=$(tool_bin):$(proto_dir) $(BUF) generate
-	@echo "Protobuf schema files are compiled"
-	mv proto/api-reference.md $(root_dir)/docs
+	@PATH=$(tool_bin):$(proto_dir) $(BUF) generate && \
+	  cp proto/api-reference.md $(root_dir)/docs
diff --git a/api/proto/banyandb/common/v1/common.pb.go b/api/proto/banyandb/common/v1/common.pb.go
deleted file mode 100644
index 236c444..0000000
--- a/api/proto/banyandb/common/v1/common.pb.go
+++ /dev/null
@@ -1,626 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.28.0
-// 	protoc        (unknown)
-// source: banyandb/common/v1/common.proto
-
-package v1
-
-import (
-	_ "github.com/envoyproxy/protoc-gen-validate/validate"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Catalog int32
-
-const (
-	Catalog_CATALOG_UNSPECIFIED Catalog = 0
-	Catalog_CATALOG_STREAM      Catalog = 1
-	Catalog_CATALOG_MEASURE     Catalog = 2
-)
-
-// Enum value maps for Catalog.
-var (
-	Catalog_name = map[int32]string{
-		0: "CATALOG_UNSPECIFIED",
-		1: "CATALOG_STREAM",
-		2: "CATALOG_MEASURE",
-	}
-	Catalog_value = map[string]int32{
-		"CATALOG_UNSPECIFIED": 0,
-		"CATALOG_STREAM":      1,
-		"CATALOG_MEASURE":     2,
-	}
-)
-
-func (x Catalog) Enum() *Catalog {
-	p := new(Catalog)
-	*p = x
-	return p
-}
-
-func (x Catalog) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Catalog) Descriptor() protoreflect.EnumDescriptor {
-	return file_banyandb_common_v1_common_proto_enumTypes[0].Descriptor()
-}
-
-func (Catalog) Type() protoreflect.EnumType {
-	return &file_banyandb_common_v1_common_proto_enumTypes[0]
-}
-
-func (x Catalog) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Catalog.Descriptor instead.
-func (Catalog) EnumDescriptor() ([]byte, []int) {
-	return file_banyandb_common_v1_common_proto_rawDescGZIP(), []int{0}
-}
-
-type IntervalRule_Unit int32
-
-const (
-	IntervalRule_UNIT_UNSPECIFIED IntervalRule_Unit = 0
-	IntervalRule_UNIT_HOUR        IntervalRule_Unit = 1
-	IntervalRule_UNIT_DAY         IntervalRule_Unit = 2
-)
-
-// Enum value maps for IntervalRule_Unit.
-var (
-	IntervalRule_Unit_name = map[int32]string{
-		0: "UNIT_UNSPECIFIED",
-		1: "UNIT_HOUR",
-		2: "UNIT_DAY",
-	}
-	IntervalRule_Unit_value = map[string]int32{
-		"UNIT_UNSPECIFIED": 0,
-		"UNIT_HOUR":        1,
-		"UNIT_DAY":         2,
-	}
-)
-
-func (x IntervalRule_Unit) Enum() *IntervalRule_Unit {
-	p := new(IntervalRule_Unit)
-	*p = x
-	return p
-}
-
-func (x IntervalRule_Unit) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (IntervalRule_Unit) Descriptor() protoreflect.EnumDescriptor {
-	return file_banyandb_common_v1_common_proto_enumTypes[1].Descriptor()
-}
-
-func (IntervalRule_Unit) Type() protoreflect.EnumType {
-	return &file_banyandb_common_v1_common_proto_enumTypes[1]
-}
-
-func (x IntervalRule_Unit) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use IntervalRule_Unit.Descriptor instead.
-func (IntervalRule_Unit) EnumDescriptor() ([]byte, []int) {
-	return file_banyandb_common_v1_common_proto_rawDescGZIP(), []int{1, 0}
-}
-
-// Metadata is for multi-tenant, multi-model use
-type Metadata struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// group contains a set of options, like retention policy, max
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-	// name of the entity
-	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Id   uint32 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"`
-	// readonly. create_revision is the revision of last creation on this key.
-	CreateRevision int64 `protobuf:"varint,4,opt,name=create_revision,json=createRevision,proto3" json:"create_revision,omitempty"`
-	// readonly. mod_revision is the revision of last modification on this key.
-	ModRevision int64 `protobuf:"varint,5,opt,name=mod_revision,json=modRevision,proto3" json:"mod_revision,omitempty"`
-}
-
-func (x *Metadata) Reset() {
-	*x = Metadata{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_common_v1_common_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Metadata) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Metadata) ProtoMessage() {}
-
-func (x *Metadata) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_common_v1_common_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Metadata.ProtoReflect.Descriptor instead.
-func (*Metadata) Descriptor() ([]byte, []int) {
-	return file_banyandb_common_v1_common_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Metadata) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-func (x *Metadata) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *Metadata) GetId() uint32 {
-	if x != nil {
-		return x.Id
-	}
-	return 0
-}
-
-func (x *Metadata) GetCreateRevision() int64 {
-	if x != nil {
-		return x.CreateRevision
-	}
-	return 0
-}
-
-func (x *Metadata) GetModRevision() int64 {
-	if x != nil {
-		return x.ModRevision
-	}
-	return 0
-}
-
-// IntervalRule is a structured duration
-type IntervalRule struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// unit can only be UNIT_HOUR or UNIT_DAY
-	Unit IntervalRule_Unit `protobuf:"varint,1,opt,name=unit,proto3,enum=banyandb.common.v1.IntervalRule_Unit" json:"unit,omitempty"`
-	Num  uint32            `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"`
-}
-
-func (x *IntervalRule) Reset() {
-	*x = IntervalRule{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_common_v1_common_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IntervalRule) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IntervalRule) ProtoMessage() {}
-
-func (x *IntervalRule) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_common_v1_common_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IntervalRule.ProtoReflect.Descriptor instead.
-func (*IntervalRule) Descriptor() ([]byte, []int) {
-	return file_banyandb_common_v1_common_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *IntervalRule) GetUnit() IntervalRule_Unit {
-	if x != nil {
-		return x.Unit
-	}
-	return IntervalRule_UNIT_UNSPECIFIED
-}
-
-func (x *IntervalRule) GetNum() uint32 {
-	if x != nil {
-		return x.Num
-	}
-	return 0
-}
-
-type ResourceOpts struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// shard_num is the number of shards
-	ShardNum uint32 `protobuf:"varint,1,opt,name=shard_num,json=shardNum,proto3" json:"shard_num,omitempty"`
-	// block_interval indicates the length of a block
-	// block_interval should be less than or equal to segment_interval
-	BlockInterval *IntervalRule `protobuf:"bytes,2,opt,name=block_interval,json=blockInterval,proto3" json:"block_interval,omitempty"`
-	// segment_interval indicates the length of a segment
-	SegmentInterval *IntervalRule `protobuf:"bytes,3,opt,name=segment_interval,json=segmentInterval,proto3" json:"segment_interval,omitempty"`
-	// ttl indicates time to live, how long the data will be cached
-	Ttl *IntervalRule `protobuf:"bytes,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
-}
-
-func (x *ResourceOpts) Reset() {
-	*x = ResourceOpts{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_common_v1_common_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ResourceOpts) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ResourceOpts) ProtoMessage() {}
-
-func (x *ResourceOpts) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_common_v1_common_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use ResourceOpts.ProtoReflect.Descriptor instead.
-func (*ResourceOpts) Descriptor() ([]byte, []int) {
-	return file_banyandb_common_v1_common_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ResourceOpts) GetShardNum() uint32 {
-	if x != nil {
-		return x.ShardNum
-	}
-	return 0
-}
-
-func (x *ResourceOpts) GetBlockInterval() *IntervalRule {
-	if x != nil {
-		return x.BlockInterval
-	}
-	return nil
-}
-
-func (x *ResourceOpts) GetSegmentInterval() *IntervalRule {
-	if x != nil {
-		return x.SegmentInterval
-	}
-	return nil
-}
-
-func (x *ResourceOpts) GetTtl() *IntervalRule {
-	if x != nil {
-		return x.Ttl
-	}
-	return nil
-}
-
-// Group is an internal object for Group management
-type Group struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// metadata define the group's identity
-	Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-	// catalog denotes which type of data the group contains
-	Catalog Catalog `protobuf:"varint,2,opt,name=catalog,proto3,enum=banyandb.common.v1.Catalog" json:"catalog,omitempty"`
-	// resourceOpts indicates the structure of the underlying kv storage
-	ResourceOpts *ResourceOpts `protobuf:"bytes,3,opt,name=resource_opts,json=resourceOpts,proto3" json:"resource_opts,omitempty"`
-	// updated_at indicates when resources of the group are updated
-	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
-}
-
-func (x *Group) Reset() {
-	*x = Group{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_common_v1_common_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Group) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Group) ProtoMessage() {}
-
-func (x *Group) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_common_v1_common_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Group.ProtoReflect.Descriptor instead.
-func (*Group) Descriptor() ([]byte, []int) {
-	return file_banyandb_common_v1_common_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *Group) GetMetadata() *Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-func (x *Group) GetCatalog() Catalog {
-	if x != nil {
-		return x.Catalog
-	}
-	return Catalog_CATALOG_UNSPECIFIED
-}
-
-func (x *Group) GetResourceOpts() *ResourceOpts {
-	if x != nil {
-		return x.ResourceOpts
-	}
-	return nil
-}
-
-func (x *Group) GetUpdatedAt() *timestamppb.Timestamp {
-	if x != nil {
-		return x.UpdatedAt
-	}
-	return nil
-}
-
-var File_banyandb_common_v1_common_proto protoreflect.FileDescriptor
-
-var file_banyandb_common_v1_common_proto_rawDesc = []byte{
-	0x0a, 0x1f, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x12, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
-	0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
-	0x99, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05,
-	0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f,
-	0x75, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
-	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12,
-	0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
-	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
-	0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x5f,
-	0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
-	0x6d, 0x6f, 0x64, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa9, 0x01, 0x0a, 0x0c,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x04,
-	0x75, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x69,
-	0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x75, 0x6e, 0x69,
-	0x74, 0x12, 0x19, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x07,
-	0xfa, 0x42, 0x04, 0x2a, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x39, 0x0a, 0x04,
-	0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53,
-	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e,
-	0x49, 0x54, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x4e, 0x49,
-	0x54, 0x5f, 0x44, 0x41, 0x59, 0x10, 0x02, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f,
-	0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72,
-	0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04,
-	0x2a, 0x02, 0x20, 0x00, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x51,
-	0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x76, 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02,
-	0x10, 0x01, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
-	0x6c, 0x12, 0x55, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x08, 0xfa,
-	0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18,
-	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x76, 0x61, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10,
-	0x01, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0x84, 0x02, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70,
-	0x12, 0x42, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
-	0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c,
-	0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x45, 0x0a, 0x0d, 0x72,
-	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
-	0x4f, 0x70, 0x74, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70,
-	0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
-	0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x2a, 0x4b, 0x0a,
-	0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x41, 0x54, 0x41,
-	0x4c, 0x4f, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
-	0x00, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x54, 0x52,
-	0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47,
-	0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x10, 0x02, 0x42, 0x6e, 0x0a, 0x28, 0x6f, 0x72,
-	0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x61, 0x70,
-	0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
-}
-
-var (
-	file_banyandb_common_v1_common_proto_rawDescOnce sync.Once
-	file_banyandb_common_v1_common_proto_rawDescData = file_banyandb_common_v1_common_proto_rawDesc
-)
-
-func file_banyandb_common_v1_common_proto_rawDescGZIP() []byte {
-	file_banyandb_common_v1_common_proto_rawDescOnce.Do(func() {
-		file_banyandb_common_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_banyandb_common_v1_common_proto_rawDescData)
-	})
-	return file_banyandb_common_v1_common_proto_rawDescData
-}
-
-var file_banyandb_common_v1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_banyandb_common_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_banyandb_common_v1_common_proto_goTypes = []interface{}{
-	(Catalog)(0),                  // 0: banyandb.common.v1.Catalog
-	(IntervalRule_Unit)(0),        // 1: banyandb.common.v1.IntervalRule.Unit
-	(*Metadata)(nil),              // 2: banyandb.common.v1.Metadata
-	(*IntervalRule)(nil),          // 3: banyandb.common.v1.IntervalRule
-	(*ResourceOpts)(nil),          // 4: banyandb.common.v1.ResourceOpts
-	(*Group)(nil),                 // 5: banyandb.common.v1.Group
-	(*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp
-}
-var file_banyandb_common_v1_common_proto_depIdxs = []int32{
-	1, // 0: banyandb.common.v1.IntervalRule.unit:type_name -> banyandb.common.v1.IntervalRule.Unit
-	3, // 1: banyandb.common.v1.ResourceOpts.block_interval:type_name -> banyandb.common.v1.IntervalRule
-	3, // 2: banyandb.common.v1.ResourceOpts.segment_interval:type_name -> banyandb.common.v1.IntervalRule
-	3, // 3: banyandb.common.v1.ResourceOpts.ttl:type_name -> banyandb.common.v1.IntervalRule
-	2, // 4: banyandb.common.v1.Group.metadata:type_name -> banyandb.common.v1.Metadata
-	0, // 5: banyandb.common.v1.Group.catalog:type_name -> banyandb.common.v1.Catalog
-	4, // 6: banyandb.common.v1.Group.resource_opts:type_name -> banyandb.common.v1.ResourceOpts
-	6, // 7: banyandb.common.v1.Group.updated_at:type_name -> google.protobuf.Timestamp
-	8, // [8:8] is the sub-list for method output_type
-	8, // [8:8] is the sub-list for method input_type
-	8, // [8:8] is the sub-list for extension type_name
-	8, // [8:8] is the sub-list for extension extendee
-	0, // [0:8] is the sub-list for field type_name
-}
-
-func init() { file_banyandb_common_v1_common_proto_init() }
-func file_banyandb_common_v1_common_proto_init() {
-	if File_banyandb_common_v1_common_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_banyandb_common_v1_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Metadata); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_common_v1_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IntervalRule); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_common_v1_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ResourceOpts); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_common_v1_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Group); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_banyandb_common_v1_common_proto_rawDesc,
-			NumEnums:      2,
-			NumMessages:   4,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_banyandb_common_v1_common_proto_goTypes,
-		DependencyIndexes: file_banyandb_common_v1_common_proto_depIdxs,
-		EnumInfos:         file_banyandb_common_v1_common_proto_enumTypes,
-		MessageInfos:      file_banyandb_common_v1_common_proto_msgTypes,
-	}.Build()
-	File_banyandb_common_v1_common_proto = out.File
-	file_banyandb_common_v1_common_proto_rawDesc = nil
-	file_banyandb_common_v1_common_proto_goTypes = nil
-	file_banyandb_common_v1_common_proto_depIdxs = nil
-}
diff --git a/api/proto/banyandb/common/v1/common.pb.validate.go b/api/proto/banyandb/common/v1/common.pb.validate.go
deleted file mode 100644
index 16f05e7..0000000
--- a/api/proto/banyandb/common/v1/common.pb.validate.go
+++ /dev/null
@@ -1,703 +0,0 @@
-// Code generated by protoc-gen-validate. DO NOT EDIT.
-// source: banyandb/common/v1/common.proto
-
-package v1
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"net"
-	"net/mail"
-	"net/url"
-	"regexp"
-	"sort"
-	"strings"
-	"time"
-	"unicode/utf8"
-
-	"google.golang.org/protobuf/types/known/anypb"
-)
-
-// ensure the imports are used
-var (
-	_ = bytes.MinRead
-	_ = errors.New("")
-	_ = fmt.Print
-	_ = utf8.UTFMax
-	_ = (*regexp.Regexp)(nil)
-	_ = (*strings.Reader)(nil)
-	_ = net.IPv4len
-	_ = time.Duration(0)
-	_ = (*url.URL)(nil)
-	_ = (*mail.Address)(nil)
-	_ = anypb.Any{}
-	_ = sort.Sort
-)
-
-// Validate checks the field values on Metadata with the rules defined in the
-// proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *Metadata) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on Metadata with the rules defined in
-// the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in MetadataMultiError, or nil
-// if none found.
-func (m *Metadata) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *Metadata) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	// no validation rules for Group
-
-	if utf8.RuneCountInString(m.GetName()) < 1 {
-		err := MetadataValidationError{
-			field:  "Name",
-			reason: "value length must be at least 1 runes",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	// no validation rules for Id
-
-	// no validation rules for CreateRevision
-
-	// no validation rules for ModRevision
-
-	if len(errors) > 0 {
-		return MetadataMultiError(errors)
-	}
-
-	return nil
-}
-
-// MetadataMultiError is an error wrapping multiple validation errors returned
-// by Metadata.ValidateAll() if the designated constraints aren't met.
-type MetadataMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m MetadataMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m MetadataMultiError) AllErrors() []error { return m }
-
-// MetadataValidationError is the validation error returned by
-// Metadata.Validate if the designated constraints aren't met.
-type MetadataValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e MetadataValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e MetadataValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e MetadataValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e MetadataValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e MetadataValidationError) ErrorName() string { return "MetadataValidationError" }
-
-// Error satisfies the builtin error interface
-func (e MetadataValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sMetadata.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = MetadataValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = MetadataValidationError{}
-
-// Validate checks the field values on IntervalRule with the rules defined in
-// the proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *IntervalRule) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on IntervalRule with the rules defined
-// in the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in IntervalRuleMultiError, or
-// nil if none found.
-func (m *IntervalRule) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *IntervalRule) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	if _, ok := IntervalRule_Unit_name[int32(m.GetUnit())]; !ok {
-		err := IntervalRuleValidationError{
-			field:  "Unit",
-			reason: "value must be one of the defined enum values",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if m.GetNum() <= 0 {
-		err := IntervalRuleValidationError{
-			field:  "Num",
-			reason: "value must be greater than 0",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if len(errors) > 0 {
-		return IntervalRuleMultiError(errors)
-	}
-
-	return nil
-}
-
-// IntervalRuleMultiError is an error wrapping multiple validation errors
-// returned by IntervalRule.ValidateAll() if the designated constraints aren't met.
-type IntervalRuleMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m IntervalRuleMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m IntervalRuleMultiError) AllErrors() []error { return m }
-
-// IntervalRuleValidationError is the validation error returned by
-// IntervalRule.Validate if the designated constraints aren't met.
-type IntervalRuleValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e IntervalRuleValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e IntervalRuleValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e IntervalRuleValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e IntervalRuleValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e IntervalRuleValidationError) ErrorName() string { return "IntervalRuleValidationError" }
-
-// Error satisfies the builtin error interface
-func (e IntervalRuleValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sIntervalRule.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = IntervalRuleValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = IntervalRuleValidationError{}
-
-// Validate checks the field values on ResourceOpts with the rules defined in
-// the proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *ResourceOpts) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on ResourceOpts with the rules defined
-// in the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in ResourceOptsMultiError, or
-// nil if none found.
-func (m *ResourceOpts) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *ResourceOpts) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	if m.GetShardNum() <= 0 {
-		err := ResourceOptsValidationError{
-			field:  "ShardNum",
-			reason: "value must be greater than 0",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if m.GetBlockInterval() == nil {
-		err := ResourceOptsValidationError{
-			field:  "BlockInterval",
-			reason: "value is required",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if all {
-		switch v := interface{}(m.GetBlockInterval()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ResourceOptsValidationError{
-					field:  "BlockInterval",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ResourceOptsValidationError{
-					field:  "BlockInterval",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetBlockInterval()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ResourceOptsValidationError{
-				field:  "BlockInterval",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if m.GetSegmentInterval() == nil {
-		err := ResourceOptsValidationError{
-			field:  "SegmentInterval",
-			reason: "value is required",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if all {
-		switch v := interface{}(m.GetSegmentInterval()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ResourceOptsValidationError{
-					field:  "SegmentInterval",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ResourceOptsValidationError{
-					field:  "SegmentInterval",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetSegmentInterval()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ResourceOptsValidationError{
-				field:  "SegmentInterval",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if m.GetTtl() == nil {
-		err := ResourceOptsValidationError{
-			field:  "Ttl",
-			reason: "value is required",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if all {
-		switch v := interface{}(m.GetTtl()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ResourceOptsValidationError{
-					field:  "Ttl",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ResourceOptsValidationError{
-					field:  "Ttl",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetTtl()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ResourceOptsValidationError{
-				field:  "Ttl",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if len(errors) > 0 {
-		return ResourceOptsMultiError(errors)
-	}
-
-	return nil
-}
-
-// ResourceOptsMultiError is an error wrapping multiple validation errors
-// returned by ResourceOpts.ValidateAll() if the designated constraints aren't met.
-type ResourceOptsMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m ResourceOptsMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m ResourceOptsMultiError) AllErrors() []error { return m }
-
-// ResourceOptsValidationError is the validation error returned by
-// ResourceOpts.Validate if the designated constraints aren't met.
-type ResourceOptsValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e ResourceOptsValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e ResourceOptsValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e ResourceOptsValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e ResourceOptsValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e ResourceOptsValidationError) ErrorName() string { return "ResourceOptsValidationError" }
-
-// Error satisfies the builtin error interface
-func (e ResourceOptsValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sResourceOpts.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = ResourceOptsValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = ResourceOptsValidationError{}
-
-// Validate checks the field values on Group with the rules defined in the
-// proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *Group) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on Group with the rules defined in the
-// proto definition for this message. If any rules are violated, the result is
-// a list of violation errors wrapped in GroupMultiError, or nil if none found.
-func (m *Group) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *Group) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	if m.GetMetadata() == nil {
-		err := GroupValidationError{
-			field:  "Metadata",
-			reason: "value is required",
-		}
-		if !all {
-			return err
-		}
-		errors = append(errors, err)
-	}
-
-	if all {
-		switch v := interface{}(m.GetMetadata()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, GroupValidationError{
-					field:  "Metadata",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, GroupValidationError{
-					field:  "Metadata",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return GroupValidationError{
-				field:  "Metadata",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for Catalog
-
-	if all {
-		switch v := interface{}(m.GetResourceOpts()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, GroupValidationError{
-					field:  "ResourceOpts",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, GroupValidationError{
-					field:  "ResourceOpts",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetResourceOpts()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return GroupValidationError{
-				field:  "ResourceOpts",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if all {
-		switch v := interface{}(m.GetUpdatedAt()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, GroupValidationError{
-					field:  "UpdatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, GroupValidationError{
-					field:  "UpdatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetUpdatedAt()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return GroupValidationError{
-				field:  "UpdatedAt",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if len(errors) > 0 {
-		return GroupMultiError(errors)
-	}
-
-	return nil
-}
-
-// GroupMultiError is an error wrapping multiple validation errors returned by
-// Group.ValidateAll() if the designated constraints aren't met.
-type GroupMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m GroupMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m GroupMultiError) AllErrors() []error { return m }
-
-// GroupValidationError is the validation error returned by Group.Validate if
-// the designated constraints aren't met.
-type GroupValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e GroupValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e GroupValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e GroupValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e GroupValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e GroupValidationError) ErrorName() string { return "GroupValidationError" }
-
-// Error satisfies the builtin error interface
-func (e GroupValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sGroup.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = GroupValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = GroupValidationError{}
diff --git a/api/proto/banyandb/common/v1/common.proto b/api/proto/banyandb/common/v1/common.proto
index 6695e0a..fb8572f 100644
--- a/api/proto/banyandb/common/v1/common.proto
+++ b/api/proto/banyandb/common/v1/common.proto
@@ -17,65 +17,66 @@
 
 syntax = "proto3";
 
-option java_package = "org.apache.skywalking.banyandb.common.v1";
-option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1";
-
 package banyandb.common.v1;
 
 import "google/protobuf/timestamp.proto";
 import "validate/validate.proto";
 
+option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1";
+option java_package = "org.apache.skywalking.banyandb.common.v1";
+
 enum Catalog {
-    CATALOG_UNSPECIFIED = 0;
-    CATALOG_STREAM = 1;
-    CATALOG_MEASURE = 2;
+  CATALOG_UNSPECIFIED = 0;
+  CATALOG_STREAM = 1;
+  CATALOG_MEASURE = 2;
 }
 
 // Metadata is for multi-tenant, multi-model use
 message Metadata {
-    // group contains a set of options, like retention policy, max
-    string group = 1;
-    // name of the entity
-    string name = 2 [(validate.rules).string.min_len = 1];
-    uint32 id = 3;
-    // readonly. create_revision is the revision of last creation on this key.
-    int64 create_revision = 4;
-    // readonly. mod_revision is the revision of last modification on this key.
-    int64 mod_revision = 5;
+  // group contains a set of options, like retention policy, max
+  string group = 1;
+  // name of the entity
+  string name = 2 [(validate.rules).string.min_len = 1];
+  uint32 id = 3;
+  // readonly. create_revision is the revision of last creation on this key.
+  int64 create_revision = 4;
+  // readonly. mod_revision is the revision of last modification on this key.
+  int64 mod_revision = 5;
 }
 
 // IntervalRule is a structured duration
 message IntervalRule {
-    enum Unit {
-        UNIT_UNSPECIFIED = 0;
-        UNIT_HOUR = 1;
-        UNIT_DAY = 2;
-    }
-    // unit can only be UNIT_HOUR or UNIT_DAY
-    Unit unit = 1 [(validate.rules).enum.defined_only = true];
-    uint32 num = 2 [(validate.rules).uint32.gt = 0];
+  enum Unit {
+    UNIT_UNSPECIFIED = 0;
+    UNIT_HOUR = 1;
+    UNIT_DAY = 2;
+  }
+  // unit can only be UNIT_HOUR or UNIT_DAY
+  Unit unit = 1 [(validate.rules).enum.defined_only = true];
+  uint32 num = 2 [(validate.rules).uint32.gt = 0];
 }
 
 message ResourceOpts {
-    // shard_num is the number of shards
-    uint32 shard_num = 1 [(validate.rules).uint32.gt = 0];
-    // block_interval indicates the length of a block
-    // block_interval should be less than or equal to segment_interval
-    IntervalRule block_interval = 2 [(validate.rules).message.required = true];
-    // segment_interval indicates the length of a segment
-    IntervalRule segment_interval = 3 [(validate.rules).message.required = true];;
-    // ttl indicates time to live, how long the data will be cached
-    IntervalRule ttl = 4 [(validate.rules).message.required = true];
+  // shard_num is the number of shards
+  uint32 shard_num = 1 [(validate.rules).uint32.gt = 0];
+  // block_interval indicates the length of a block
+  // block_interval should be less than or equal to segment_interval
+  IntervalRule block_interval = 2 [(validate.rules).message.required = true];
+  // segment_interval indicates the length of a segment
+  IntervalRule segment_interval = 3 [(validate.rules).message.required = true];
+
+  // ttl indicates time to live, how long the data will be cached
+  IntervalRule ttl = 4 [(validate.rules).message.required = true];
 }
 
 // Group is an internal object for Group management
 message Group {
-    // metadata define the group's identity
-    common.v1.Metadata metadata = 1 [(validate.rules).message.required = true];
-    // catalog denotes which type of data the group contains
-    common.v1.Catalog catalog = 2;
-    // resourceOpts indicates the structure of the underlying kv storage
-    ResourceOpts resource_opts = 3; 
-    // updated_at indicates when resources of the group are updated
-    google.protobuf.Timestamp updated_at = 4;
+  // metadata define the group's identity
+  common.v1.Metadata metadata = 1 [(validate.rules).message.required = true];
+  // catalog denotes which type of data the group contains
+  common.v1.Catalog catalog = 2;
+  // resourceOpts indicates the structure of the underlying kv storage
+  ResourceOpts resource_opts = 3;
+  // updated_at indicates when resources of the group are updated
+  google.protobuf.Timestamp updated_at = 4;
 }
diff --git a/api/proto/banyandb/database/v1/database.pb.go b/api/proto/banyandb/database/v1/database.pb.go
deleted file mode 100644
index d6b7eb3..0000000
--- a/api/proto/banyandb/database/v1/database.pb.go
+++ /dev/null
@@ -1,344 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.28.0
-// 	protoc        (unknown)
-// source: banyandb/database/v1/database.proto
-
-package v1
-
-import (
-	v1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Node struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id        string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Addr      string                 `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
-	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
-	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
-}
-
-func (x *Node) Reset() {
-	*x = Node{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_database_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Node) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Node) ProtoMessage() {}
-
-func (x *Node) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_database_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Node.ProtoReflect.Descriptor instead.
-func (*Node) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_database_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Node) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *Node) GetAddr() string {
-	if x != nil {
-		return x.Addr
-	}
-	return ""
-}
-
-func (x *Node) GetUpdatedAt() *timestamppb.Timestamp {
-	if x != nil {
-		return x.UpdatedAt
-	}
-	return nil
-}
-
-func (x *Node) GetCreatedAt() *timestamppb.Timestamp {
-	if x != nil {
-		return x.CreatedAt
-	}
-	return nil
-}
-
-type Shard struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id        uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
-	Metadata  *v1.Metadata           `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
-	Catalog   v1.Catalog             `protobuf:"varint,3,opt,name=catalog,proto3,enum=banyandb.common.v1.Catalog" json:"catalog,omitempty"`
-	Node      *Node                  `protobuf:"bytes,4,opt,name=node,proto3" json:"node,omitempty"`
-	Total     uint32                 `protobuf:"varint,5,opt,name=total,proto3" json:"total,omitempty"`
-	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
-	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
-}
-
-func (x *Shard) Reset() {
-	*x = Shard{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_database_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Shard) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Shard) ProtoMessage() {}
-
-func (x *Shard) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_database_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Shard.ProtoReflect.Descriptor instead.
-func (*Shard) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_database_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Shard) GetId() uint64 {
-	if x != nil {
-		return x.Id
-	}
-	return 0
-}
-
-func (x *Shard) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-func (x *Shard) GetCatalog() v1.Catalog {
-	if x != nil {
-		return x.Catalog
-	}
-	return v1.Catalog(0)
-}
-
-func (x *Shard) GetNode() *Node {
-	if x != nil {
-		return x.Node
-	}
-	return nil
-}
-
-func (x *Shard) GetTotal() uint32 {
-	if x != nil {
-		return x.Total
-	}
-	return 0
-}
-
-func (x *Shard) GetUpdatedAt() *timestamppb.Timestamp {
-	if x != nil {
-		return x.UpdatedAt
-	}
-	return nil
-}
-
-func (x *Shard) GetCreatedAt() *timestamppb.Timestamp {
-	if x != nil {
-		return x.CreatedAt
-	}
-	return nil
-}
-
-var File_banyandb_database_v1_database_proto protoreflect.FileDescriptor
-
-var file_banyandb_database_v1_database_proto_rawDesc = []byte{
-	0x0a, 0x23, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31,
-	0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x01,
-	0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70,
-	0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
-	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
-	0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
-	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
-	0x22, 0xc4, 0x02, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62,
-	0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
-	0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
-	0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c,
-	0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6e,
-	0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74,
-	0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61,
-	0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
-	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
-	0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a,
-	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72,
-	0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x72, 0x0a, 0x2a, 0x6f, 0x72, 0x67, 0x2e, 0x61,
-	0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
-	0x69, 0x6e, 0x67, 0x2d, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x61, 0x70, 0x69,
-	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x33,
-}
-
-var (
-	file_banyandb_database_v1_database_proto_rawDescOnce sync.Once
-	file_banyandb_database_v1_database_proto_rawDescData = file_banyandb_database_v1_database_proto_rawDesc
-)
-
-func file_banyandb_database_v1_database_proto_rawDescGZIP() []byte {
-	file_banyandb_database_v1_database_proto_rawDescOnce.Do(func() {
-		file_banyandb_database_v1_database_proto_rawDescData = protoimpl.X.CompressGZIP(file_banyandb_database_v1_database_proto_rawDescData)
-	})
-	return file_banyandb_database_v1_database_proto_rawDescData
-}
-
-var file_banyandb_database_v1_database_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_banyandb_database_v1_database_proto_goTypes = []interface{}{
-	(*Node)(nil),                  // 0: banyandb.database.v1.Node
-	(*Shard)(nil),                 // 1: banyandb.database.v1.Shard
-	(*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp
-	(*v1.Metadata)(nil),           // 3: banyandb.common.v1.Metadata
-	(v1.Catalog)(0),               // 4: banyandb.common.v1.Catalog
-}
-var file_banyandb_database_v1_database_proto_depIdxs = []int32{
-	2, // 0: banyandb.database.v1.Node.updated_at:type_name -> google.protobuf.Timestamp
-	2, // 1: banyandb.database.v1.Node.created_at:type_name -> google.protobuf.Timestamp
-	3, // 2: banyandb.database.v1.Shard.metadata:type_name -> banyandb.common.v1.Metadata
-	4, // 3: banyandb.database.v1.Shard.catalog:type_name -> banyandb.common.v1.Catalog
-	0, // 4: banyandb.database.v1.Shard.node:type_name -> banyandb.database.v1.Node
-	2, // 5: banyandb.database.v1.Shard.updated_at:type_name -> google.protobuf.Timestamp
-	2, // 6: banyandb.database.v1.Shard.created_at:type_name -> google.protobuf.Timestamp
-	7, // [7:7] is the sub-list for method output_type
-	7, // [7:7] is the sub-list for method input_type
-	7, // [7:7] is the sub-list for extension type_name
-	7, // [7:7] is the sub-list for extension extendee
-	0, // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_banyandb_database_v1_database_proto_init() }
-func file_banyandb_database_v1_database_proto_init() {
-	if File_banyandb_database_v1_database_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_banyandb_database_v1_database_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Node); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_database_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Shard); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_banyandb_database_v1_database_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   2,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_banyandb_database_v1_database_proto_goTypes,
-		DependencyIndexes: file_banyandb_database_v1_database_proto_depIdxs,
-		MessageInfos:      file_banyandb_database_v1_database_proto_msgTypes,
-	}.Build()
-	File_banyandb_database_v1_database_proto = out.File
-	file_banyandb_database_v1_database_proto_rawDesc = nil
-	file_banyandb_database_v1_database_proto_goTypes = nil
-	file_banyandb_database_v1_database_proto_depIdxs = nil
-}
diff --git a/api/proto/banyandb/database/v1/database.pb.validate.go b/api/proto/banyandb/database/v1/database.pb.validate.go
deleted file mode 100644
index b58713f..0000000
--- a/api/proto/banyandb/database/v1/database.pb.validate.go
+++ /dev/null
@@ -1,416 +0,0 @@
-// Code generated by protoc-gen-validate. DO NOT EDIT.
-// source: banyandb/database/v1/database.proto
-
-package v1
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"net"
-	"net/mail"
-	"net/url"
-	"regexp"
-	"sort"
-	"strings"
-	"time"
-	"unicode/utf8"
-
-	"google.golang.org/protobuf/types/known/anypb"
-)
-
-// ensure the imports are used
-var (
-	_ = bytes.MinRead
-	_ = errors.New("")
-	_ = fmt.Print
-	_ = utf8.UTFMax
-	_ = (*regexp.Regexp)(nil)
-	_ = (*strings.Reader)(nil)
-	_ = net.IPv4len
-	_ = time.Duration(0)
-	_ = (*url.URL)(nil)
-	_ = (*mail.Address)(nil)
-	_ = anypb.Any{}
-	_ = sort.Sort
-)
-
-// Validate checks the field values on Node with the rules defined in the proto
-// definition for this message. If any rules are violated, the first error
-// encountered is returned, or nil if there are no violations.
-func (m *Node) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on Node with the rules defined in the
-// proto definition for this message. If any rules are violated, the result is
-// a list of violation errors wrapped in NodeMultiError, or nil if none found.
-func (m *Node) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *Node) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	// no validation rules for Id
-
-	// no validation rules for Addr
-
-	if all {
-		switch v := interface{}(m.GetUpdatedAt()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, NodeValidationError{
-					field:  "UpdatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, NodeValidationError{
-					field:  "UpdatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetUpdatedAt()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return NodeValidationError{
-				field:  "UpdatedAt",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if all {
-		switch v := interface{}(m.GetCreatedAt()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, NodeValidationError{
-					field:  "CreatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, NodeValidationError{
-					field:  "CreatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetCreatedAt()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return NodeValidationError{
-				field:  "CreatedAt",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if len(errors) > 0 {
-		return NodeMultiError(errors)
-	}
-
-	return nil
-}
-
-// NodeMultiError is an error wrapping multiple validation errors returned by
-// Node.ValidateAll() if the designated constraints aren't met.
-type NodeMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m NodeMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m NodeMultiError) AllErrors() []error { return m }
-
-// NodeValidationError is the validation error returned by Node.Validate if the
-// designated constraints aren't met.
-type NodeValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e NodeValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e NodeValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e NodeValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e NodeValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e NodeValidationError) ErrorName() string { return "NodeValidationError" }
-
-// Error satisfies the builtin error interface
-func (e NodeValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sNode.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = NodeValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = NodeValidationError{}
-
-// Validate checks the field values on Shard with the rules defined in the
-// proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *Shard) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on Shard with the rules defined in the
-// proto definition for this message. If any rules are violated, the result is
-// a list of violation errors wrapped in ShardMultiError, or nil if none found.
-func (m *Shard) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *Shard) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	// no validation rules for Id
-
-	if all {
-		switch v := interface{}(m.GetMetadata()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "Metadata",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "Metadata",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ShardValidationError{
-				field:  "Metadata",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for Catalog
-
-	if all {
-		switch v := interface{}(m.GetNode()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "Node",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "Node",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetNode()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ShardValidationError{
-				field:  "Node",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for Total
-
-	if all {
-		switch v := interface{}(m.GetUpdatedAt()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "UpdatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "UpdatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetUpdatedAt()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ShardValidationError{
-				field:  "UpdatedAt",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if all {
-		switch v := interface{}(m.GetCreatedAt()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "CreatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ShardValidationError{
-					field:  "CreatedAt",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetCreatedAt()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ShardValidationError{
-				field:  "CreatedAt",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if len(errors) > 0 {
-		return ShardMultiError(errors)
-	}
-
-	return nil
-}
-
-// ShardMultiError is an error wrapping multiple validation errors returned by
-// Shard.ValidateAll() if the designated constraints aren't met.
-type ShardMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m ShardMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m ShardMultiError) AllErrors() []error { return m }
-
-// ShardValidationError is the validation error returned by Shard.Validate if
-// the designated constraints aren't met.
-type ShardValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e ShardValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e ShardValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e ShardValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e ShardValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e ShardValidationError) ErrorName() string { return "ShardValidationError" }
-
-// Error satisfies the builtin error interface
-func (e ShardValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sShard.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = ShardValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = ShardValidationError{}
diff --git a/api/proto/banyandb/database/v1/database.proto b/api/proto/banyandb/database/v1/database.proto
index 82a1b58..2e2ac78 100644
--- a/api/proto/banyandb/database/v1/database.proto
+++ b/api/proto/banyandb/database/v1/database.proto
@@ -17,27 +17,27 @@
 
 syntax = "proto3";
 
-option java_package = "org.apache.skywalking.banyandb.database.v1";
-option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1";
-
 package banyandb.database.v1;
 
-import "google/protobuf/timestamp.proto";
 import "banyandb/common/v1/common.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1";
+option java_package = "org.apache.skywalking.banyandb.database.v1";
 
 message Node {
-    string id = 1;
-    string addr = 2;
-    google.protobuf.Timestamp updated_at = 3;
-    google.protobuf.Timestamp created_at = 4;
+  string id = 1;
+  string addr = 2;
+  google.protobuf.Timestamp updated_at = 3;
+  google.protobuf.Timestamp created_at = 4;
 }
 
 message Shard {
-    uint64 id = 1;
-    common.v1.Metadata metadata = 2;
-    common.v1.Catalog catalog = 3;
-    Node node = 4;
-    uint32 total = 5;
-    google.protobuf.Timestamp updated_at = 6;
-    google.protobuf.Timestamp created_at = 7;
+  uint64 id = 1;
+  common.v1.Metadata metadata = 2;
+  common.v1.Catalog catalog = 3;
+  Node node = 4;
+  uint32 total = 5;
+  google.protobuf.Timestamp updated_at = 6;
+  google.protobuf.Timestamp created_at = 7;
 }
diff --git a/api/proto/banyandb/database/v1/event.pb.go b/api/proto/banyandb/database/v1/event.pb.go
deleted file mode 100644
index 16197bc..0000000
--- a/api/proto/banyandb/database/v1/event.pb.go
+++ /dev/null
@@ -1,440 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.28.0
-// 	protoc        (unknown)
-// source: banyandb/database/v1/event.proto
-
-package v1
-
-import (
-	v1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Action int32
-
-const (
-	Action_ACTION_UNSPECIFIED Action = 0
-	Action_ACTION_PUT         Action = 1
-	Action_ACTION_DELETE      Action = 2
-)
-
-// Enum value maps for Action.
-var (
-	Action_name = map[int32]string{
-		0: "ACTION_UNSPECIFIED",
-		1: "ACTION_PUT",
-		2: "ACTION_DELETE",
-	}
-	Action_value = map[string]int32{
-		"ACTION_UNSPECIFIED": 0,
-		"ACTION_PUT":         1,
-		"ACTION_DELETE":      2,
-	}
-)
-
-func (x Action) Enum() *Action {
-	p := new(Action)
-	*p = x
-	return p
-}
-
-func (x Action) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Action) Descriptor() protoreflect.EnumDescriptor {
-	return file_banyandb_database_v1_event_proto_enumTypes[0].Descriptor()
-}
-
-func (Action) Type() protoreflect.EnumType {
-	return &file_banyandb_database_v1_event_proto_enumTypes[0]
-}
-
-func (x Action) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Action.Descriptor instead.
-func (Action) EnumDescriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_event_proto_rawDescGZIP(), []int{0}
-}
-
-type ShardEvent struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Shard  *Shard                 `protobuf:"bytes,1,opt,name=shard,proto3" json:"shard,omitempty"`
-	Action Action                 `protobuf:"varint,2,opt,name=action,proto3,enum=banyandb.database.v1.Action" json:"action,omitempty"`
-	Time   *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
-}
-
-func (x *ShardEvent) Reset() {
-	*x = ShardEvent{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_event_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ShardEvent) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ShardEvent) ProtoMessage() {}
-
-func (x *ShardEvent) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_event_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use ShardEvent.ProtoReflect.Descriptor instead.
-func (*ShardEvent) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_event_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ShardEvent) GetShard() *Shard {
-	if x != nil {
-		return x.Shard
-	}
-	return nil
-}
-
-func (x *ShardEvent) GetAction() Action {
-	if x != nil {
-		return x.Action
-	}
-	return Action_ACTION_UNSPECIFIED
-}
-
-func (x *ShardEvent) GetTime() *timestamppb.Timestamp {
-	if x != nil {
-		return x.Time
-	}
-	return nil
-}
-
-type EntityEvent struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Subject       *v1.Metadata              `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"`
-	EntityLocator []*EntityEvent_TagLocator `protobuf:"bytes,2,rep,name=entity_locator,json=entityLocator,proto3" json:"entity_locator,omitempty"`
-	Action        Action                    `protobuf:"varint,3,opt,name=action,proto3,enum=banyandb.database.v1.Action" json:"action,omitempty"`
-	Time          *timestamppb.Timestamp    `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
-}
-
-func (x *EntityEvent) Reset() {
-	*x = EntityEvent{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_event_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *EntityEvent) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EntityEvent) ProtoMessage() {}
-
-func (x *EntityEvent) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_event_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use EntityEvent.ProtoReflect.Descriptor instead.
-func (*EntityEvent) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_event_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *EntityEvent) GetSubject() *v1.Metadata {
-	if x != nil {
-		return x.Subject
-	}
-	return nil
-}
-
-func (x *EntityEvent) GetEntityLocator() []*EntityEvent_TagLocator {
-	if x != nil {
-		return x.EntityLocator
-	}
-	return nil
-}
-
-func (x *EntityEvent) GetAction() Action {
-	if x != nil {
-		return x.Action
-	}
-	return Action_ACTION_UNSPECIFIED
-}
-
-func (x *EntityEvent) GetTime() *timestamppb.Timestamp {
-	if x != nil {
-		return x.Time
-	}
-	return nil
-}
-
-type EntityEvent_TagLocator struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	FamilyOffset uint32 `protobuf:"varint,1,opt,name=family_offset,json=familyOffset,proto3" json:"family_offset,omitempty"`
-	TagOffset    uint32 `protobuf:"varint,2,opt,name=tag_offset,json=tagOffset,proto3" json:"tag_offset,omitempty"`
-}
-
-func (x *EntityEvent_TagLocator) Reset() {
-	*x = EntityEvent_TagLocator{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_event_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *EntityEvent_TagLocator) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EntityEvent_TagLocator) ProtoMessage() {}
-
-func (x *EntityEvent_TagLocator) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_event_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use EntityEvent_TagLocator.ProtoReflect.Descriptor instead.
-func (*EntityEvent_TagLocator) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_event_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *EntityEvent_TagLocator) GetFamilyOffset() uint32 {
-	if x != nil {
-		return x.FamilyOffset
-	}
-	return 0
-}
-
-func (x *EntityEvent_TagLocator) GetTagOffset() uint32 {
-	if x != nil {
-		return x.TagOffset
-	}
-	return 0
-}
-
-var File_banyandb_database_v1_event_proto protoreflect.FileDescriptor
-
-var file_banyandb_database_v1_event_proto_rawDesc = []byte{
-	0x0a, 0x20, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x12, 0x14, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
-	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31,
-	0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
-	0xa5, 0x01, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31,
-	0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72,
-	0x64, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0e, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
-	0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
-	0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xd2, 0x02, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x69,
-	0x74, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65,
-	0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12,
-	0x53, 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x6f,
-	0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e,
-	0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45,
-	0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x6f,
-	0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x63,
-	0x61, 0x74, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69,
-	0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69,
-	0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
-	0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x50, 0x0a, 0x0a, 0x54, 0x61,
-	0x67, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x6d, 0x69,
-	0x6c, 0x79, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
-	0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a,
-	0x0a, 0x74, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0d, 0x52, 0x09, 0x74, 0x61, 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2a, 0x43, 0x0a, 0x06,
-	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
-	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e,
-	0x0a, 0x0a, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x11,
-	0x0a, 0x0d, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10,
-	0x02, 0x42, 0x72, 0x0a, 0x2a, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e,
-	0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x5a,
-	0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63,
-	0x68, 0x65, 0x2f, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x2f, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_banyandb_database_v1_event_proto_rawDescOnce sync.Once
-	file_banyandb_database_v1_event_proto_rawDescData = file_banyandb_database_v1_event_proto_rawDesc
-)
-
-func file_banyandb_database_v1_event_proto_rawDescGZIP() []byte {
-	file_banyandb_database_v1_event_proto_rawDescOnce.Do(func() {
-		file_banyandb_database_v1_event_proto_rawDescData = protoimpl.X.CompressGZIP(file_banyandb_database_v1_event_proto_rawDescData)
-	})
-	return file_banyandb_database_v1_event_proto_rawDescData
-}
-
-var file_banyandb_database_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_banyandb_database_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
-var file_banyandb_database_v1_event_proto_goTypes = []interface{}{
-	(Action)(0),                    // 0: banyandb.database.v1.Action
-	(*ShardEvent)(nil),             // 1: banyandb.database.v1.ShardEvent
-	(*EntityEvent)(nil),            // 2: banyandb.database.v1.EntityEvent
-	(*EntityEvent_TagLocator)(nil), // 3: banyandb.database.v1.EntityEvent.TagLocator
-	(*Shard)(nil),                  // 4: banyandb.database.v1.Shard
-	(*timestamppb.Timestamp)(nil),  // 5: google.protobuf.Timestamp
-	(*v1.Metadata)(nil),            // 6: banyandb.common.v1.Metadata
-}
-var file_banyandb_database_v1_event_proto_depIdxs = []int32{
-	4, // 0: banyandb.database.v1.ShardEvent.shard:type_name -> banyandb.database.v1.Shard
-	0, // 1: banyandb.database.v1.ShardEvent.action:type_name -> banyandb.database.v1.Action
-	5, // 2: banyandb.database.v1.ShardEvent.time:type_name -> google.protobuf.Timestamp
-	6, // 3: banyandb.database.v1.EntityEvent.subject:type_name -> banyandb.common.v1.Metadata
-	3, // 4: banyandb.database.v1.EntityEvent.entity_locator:type_name -> banyandb.database.v1.EntityEvent.TagLocator
-	0, // 5: banyandb.database.v1.EntityEvent.action:type_name -> banyandb.database.v1.Action
-	5, // 6: banyandb.database.v1.EntityEvent.time:type_name -> google.protobuf.Timestamp
-	7, // [7:7] is the sub-list for method output_type
-	7, // [7:7] is the sub-list for method input_type
-	7, // [7:7] is the sub-list for extension type_name
-	7, // [7:7] is the sub-list for extension extendee
-	0, // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_banyandb_database_v1_event_proto_init() }
-func file_banyandb_database_v1_event_proto_init() {
-	if File_banyandb_database_v1_event_proto != nil {
-		return
-	}
-	file_banyandb_database_v1_database_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_banyandb_database_v1_event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ShardEvent); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_event_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*EntityEvent); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_event_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*EntityEvent_TagLocator); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_banyandb_database_v1_event_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   3,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_banyandb_database_v1_event_proto_goTypes,
-		DependencyIndexes: file_banyandb_database_v1_event_proto_depIdxs,
-		EnumInfos:         file_banyandb_database_v1_event_proto_enumTypes,
-		MessageInfos:      file_banyandb_database_v1_event_proto_msgTypes,
-	}.Build()
-	File_banyandb_database_v1_event_proto = out.File
-	file_banyandb_database_v1_event_proto_rawDesc = nil
-	file_banyandb_database_v1_event_proto_goTypes = nil
-	file_banyandb_database_v1_event_proto_depIdxs = nil
-}
diff --git a/api/proto/banyandb/database/v1/event.pb.validate.go b/api/proto/banyandb/database/v1/event.pb.validate.go
deleted file mode 100644
index 5e0ab42..0000000
--- a/api/proto/banyandb/database/v1/event.pb.validate.go
+++ /dev/null
@@ -1,494 +0,0 @@
-// Code generated by protoc-gen-validate. DO NOT EDIT.
-// source: banyandb/database/v1/event.proto
-
-package v1
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"net"
-	"net/mail"
-	"net/url"
-	"regexp"
-	"sort"
-	"strings"
-	"time"
-	"unicode/utf8"
-
-	"google.golang.org/protobuf/types/known/anypb"
-)
-
-// ensure the imports are used
-var (
-	_ = bytes.MinRead
-	_ = errors.New("")
-	_ = fmt.Print
-	_ = utf8.UTFMax
-	_ = (*regexp.Regexp)(nil)
-	_ = (*strings.Reader)(nil)
-	_ = net.IPv4len
-	_ = time.Duration(0)
-	_ = (*url.URL)(nil)
-	_ = (*mail.Address)(nil)
-	_ = anypb.Any{}
-	_ = sort.Sort
-)
-
-// Validate checks the field values on ShardEvent with the rules defined in the
-// proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *ShardEvent) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on ShardEvent with the rules defined in
-// the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in ShardEventMultiError, or
-// nil if none found.
-func (m *ShardEvent) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *ShardEvent) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	if all {
-		switch v := interface{}(m.GetShard()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ShardEventValidationError{
-					field:  "Shard",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ShardEventValidationError{
-					field:  "Shard",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetShard()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ShardEventValidationError{
-				field:  "Shard",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	// no validation rules for Action
-
-	if all {
-		switch v := interface{}(m.GetTime()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, ShardEventValidationError{
-					field:  "Time",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, ShardEventValidationError{
-					field:  "Time",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetTime()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return ShardEventValidationError{
-				field:  "Time",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if len(errors) > 0 {
-		return ShardEventMultiError(errors)
-	}
-
-	return nil
-}
-
-// ShardEventMultiError is an error wrapping multiple validation errors
-// returned by ShardEvent.ValidateAll() if the designated constraints aren't met.
-type ShardEventMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m ShardEventMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m ShardEventMultiError) AllErrors() []error { return m }
-
-// ShardEventValidationError is the validation error returned by
-// ShardEvent.Validate if the designated constraints aren't met.
-type ShardEventValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e ShardEventValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e ShardEventValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e ShardEventValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e ShardEventValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e ShardEventValidationError) ErrorName() string { return "ShardEventValidationError" }
-
-// Error satisfies the builtin error interface
-func (e ShardEventValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sShardEvent.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = ShardEventValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = ShardEventValidationError{}
-
-// Validate checks the field values on EntityEvent with the rules defined in
-// the proto definition for this message. If any rules are violated, the first
-// error encountered is returned, or nil if there are no violations.
-func (m *EntityEvent) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on EntityEvent with the rules defined in
-// the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in EntityEventMultiError, or
-// nil if none found.
-func (m *EntityEvent) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *EntityEvent) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	if all {
-		switch v := interface{}(m.GetSubject()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, EntityEventValidationError{
-					field:  "Subject",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, EntityEventValidationError{
-					field:  "Subject",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetSubject()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return EntityEventValidationError{
-				field:  "Subject",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	for idx, item := range m.GetEntityLocator() {
-		_, _ = idx, item
-
-		if all {
-			switch v := interface{}(item).(type) {
-			case interface{ ValidateAll() error }:
-				if err := v.ValidateAll(); err != nil {
-					errors = append(errors, EntityEventValidationError{
-						field:  fmt.Sprintf("EntityLocator[%v]", idx),
-						reason: "embedded message failed validation",
-						cause:  err,
-					})
-				}
-			case interface{ Validate() error }:
-				if err := v.Validate(); err != nil {
-					errors = append(errors, EntityEventValidationError{
-						field:  fmt.Sprintf("EntityLocator[%v]", idx),
-						reason: "embedded message failed validation",
-						cause:  err,
-					})
-				}
-			}
-		} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
-			if err := v.Validate(); err != nil {
-				return EntityEventValidationError{
-					field:  fmt.Sprintf("EntityLocator[%v]", idx),
-					reason: "embedded message failed validation",
-					cause:  err,
-				}
-			}
-		}
-
-	}
-
-	// no validation rules for Action
-
-	if all {
-		switch v := interface{}(m.GetTime()).(type) {
-		case interface{ ValidateAll() error }:
-			if err := v.ValidateAll(); err != nil {
-				errors = append(errors, EntityEventValidationError{
-					field:  "Time",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		case interface{ Validate() error }:
-			if err := v.Validate(); err != nil {
-				errors = append(errors, EntityEventValidationError{
-					field:  "Time",
-					reason: "embedded message failed validation",
-					cause:  err,
-				})
-			}
-		}
-	} else if v, ok := interface{}(m.GetTime()).(interface{ Validate() error }); ok {
-		if err := v.Validate(); err != nil {
-			return EntityEventValidationError{
-				field:  "Time",
-				reason: "embedded message failed validation",
-				cause:  err,
-			}
-		}
-	}
-
-	if len(errors) > 0 {
-		return EntityEventMultiError(errors)
-	}
-
-	return nil
-}
-
-// EntityEventMultiError is an error wrapping multiple validation errors
-// returned by EntityEvent.ValidateAll() if the designated constraints aren't met.
-type EntityEventMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m EntityEventMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m EntityEventMultiError) AllErrors() []error { return m }
-
-// EntityEventValidationError is the validation error returned by
-// EntityEvent.Validate if the designated constraints aren't met.
-type EntityEventValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e EntityEventValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e EntityEventValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e EntityEventValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e EntityEventValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e EntityEventValidationError) ErrorName() string { return "EntityEventValidationError" }
-
-// Error satisfies the builtin error interface
-func (e EntityEventValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sEntityEvent.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = EntityEventValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = EntityEventValidationError{}
-
-// Validate checks the field values on EntityEvent_TagLocator with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the first error encountered is returned, or nil if there are no violations.
-func (m *EntityEvent_TagLocator) Validate() error {
-	return m.validate(false)
-}
-
-// ValidateAll checks the field values on EntityEvent_TagLocator with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the result is a list of violation errors wrapped in
-// EntityEvent_TagLocatorMultiError, or nil if none found.
-func (m *EntityEvent_TagLocator) ValidateAll() error {
-	return m.validate(true)
-}
-
-func (m *EntityEvent_TagLocator) validate(all bool) error {
-	if m == nil {
-		return nil
-	}
-
-	var errors []error
-
-	// no validation rules for FamilyOffset
-
-	// no validation rules for TagOffset
-
-	if len(errors) > 0 {
-		return EntityEvent_TagLocatorMultiError(errors)
-	}
-
-	return nil
-}
-
-// EntityEvent_TagLocatorMultiError is an error wrapping multiple validation
-// errors returned by EntityEvent_TagLocator.ValidateAll() if the designated
-// constraints aren't met.
-type EntityEvent_TagLocatorMultiError []error
-
-// Error returns a concatenation of all the error messages it wraps.
-func (m EntityEvent_TagLocatorMultiError) Error() string {
-	var msgs []string
-	for _, err := range m {
-		msgs = append(msgs, err.Error())
-	}
-	return strings.Join(msgs, "; ")
-}
-
-// AllErrors returns a list of validation violation errors.
-func (m EntityEvent_TagLocatorMultiError) AllErrors() []error { return m }
-
-// EntityEvent_TagLocatorValidationError is the validation error returned by
-// EntityEvent_TagLocator.Validate if the designated constraints aren't met.
-type EntityEvent_TagLocatorValidationError struct {
-	field  string
-	reason string
-	cause  error
-	key    bool
-}
-
-// Field function returns field value.
-func (e EntityEvent_TagLocatorValidationError) Field() string { return e.field }
-
-// Reason function returns reason value.
-func (e EntityEvent_TagLocatorValidationError) Reason() string { return e.reason }
-
-// Cause function returns cause value.
-func (e EntityEvent_TagLocatorValidationError) Cause() error { return e.cause }
-
-// Key function returns key value.
-func (e EntityEvent_TagLocatorValidationError) Key() bool { return e.key }
-
-// ErrorName returns error name.
-func (e EntityEvent_TagLocatorValidationError) ErrorName() string {
-	return "EntityEvent_TagLocatorValidationError"
-}
-
-// Error satisfies the builtin error interface
-func (e EntityEvent_TagLocatorValidationError) Error() string {
-	cause := ""
-	if e.cause != nil {
-		cause = fmt.Sprintf(" | caused by: %v", e.cause)
-	}
-
-	key := ""
-	if e.key {
-		key = "key for "
-	}
-
-	return fmt.Sprintf(
-		"invalid %sEntityEvent_TagLocator.%s: %s%s",
-		key,
-		e.field,
-		e.reason,
-		cause)
-}
-
-var _ error = EntityEvent_TagLocatorValidationError{}
-
-var _ interface {
-	Field() string
-	Reason() string
-	Key() bool
-	Cause() error
-	ErrorName() string
-} = EntityEvent_TagLocatorValidationError{}
diff --git a/api/proto/banyandb/database/v1/event.proto b/api/proto/banyandb/database/v1/event.proto
index a6abfdb..19f98f6 100644
--- a/api/proto/banyandb/database/v1/event.proto
+++ b/api/proto/banyandb/database/v1/event.proto
@@ -17,34 +17,34 @@
 
 syntax = "proto3";
 
-option java_package = "org.apache.skywalking.banyandb.database.v1";
-option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1";
-
 package banyandb.database.v1;
 
-import "google/protobuf/timestamp.proto";
 import "banyandb/common/v1/common.proto";
 import "banyandb/database/v1/database.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1";
+option java_package = "org.apache.skywalking.banyandb.database.v1";
 
 enum Action {
-    ACTION_UNSPECIFIED = 0;
-    ACTION_PUT = 1;
-    ACTION_DELETE = 2;
+  ACTION_UNSPECIFIED = 0;
+  ACTION_PUT = 1;
+  ACTION_DELETE = 2;
 }
 
 message ShardEvent {
-    Shard shard = 1;
-    Action action = 2;
-    google.protobuf.Timestamp time = 3;
+  Shard shard = 1;
+  Action action = 2;
+  google.protobuf.Timestamp time = 3;
 }
 
 message EntityEvent {
-    common.v1.Metadata subject = 1; 
-    message TagLocator {
-        uint32 family_offset = 1;
-        uint32 tag_offset = 2;
-    }
-    repeated TagLocator entity_locator = 2;
-    Action action = 3;
-    google.protobuf.Timestamp time = 4; 
+  common.v1.Metadata subject = 1;
+  message TagLocator {
+    uint32 family_offset = 1;
+    uint32 tag_offset = 2;
+  }
+  repeated TagLocator entity_locator = 2;
+  Action action = 3;
+  google.protobuf.Timestamp time = 4;
 }
diff --git a/api/proto/banyandb/database/v1/rpc.pb.go b/api/proto/banyandb/database/v1/rpc.pb.go
deleted file mode 100644
index cbf6be0..0000000
--- a/api/proto/banyandb/database/v1/rpc.pb.go
+++ /dev/null
@@ -1,5256 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.28.0
-// 	protoc        (unknown)
-// source: banyandb/database/v1/rpc.proto
-
-package v1
-
-import (
-	v1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/common/v1"
-	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
-	_ "google.golang.org/genproto/googleapis/api/annotations"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type StreamRegistryServiceCreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Stream *Stream `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"`
-}
-
-func (x *StreamRegistryServiceCreateRequest) Reset() {
-	*x = StreamRegistryServiceCreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceCreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceCreateRequest) ProtoMessage() {}
-
-func (x *StreamRegistryServiceCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceCreateRequest.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceCreateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *StreamRegistryServiceCreateRequest) GetStream() *Stream {
-	if x != nil {
-		return x.Stream
-	}
-	return nil
-}
-
-type StreamRegistryServiceCreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *StreamRegistryServiceCreateResponse) Reset() {
-	*x = StreamRegistryServiceCreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceCreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceCreateResponse) ProtoMessage() {}
-
-func (x *StreamRegistryServiceCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceCreateResponse.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceCreateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{1}
-}
-
-type StreamRegistryServiceUpdateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Stream *Stream `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"`
-}
-
-func (x *StreamRegistryServiceUpdateRequest) Reset() {
-	*x = StreamRegistryServiceUpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceUpdateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceUpdateRequest) ProtoMessage() {}
-
-func (x *StreamRegistryServiceUpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceUpdateRequest.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceUpdateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *StreamRegistryServiceUpdateRequest) GetStream() *Stream {
-	if x != nil {
-		return x.Stream
-	}
-	return nil
-}
-
-type StreamRegistryServiceUpdateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *StreamRegistryServiceUpdateResponse) Reset() {
-	*x = StreamRegistryServiceUpdateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceUpdateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceUpdateResponse) ProtoMessage() {}
-
-func (x *StreamRegistryServiceUpdateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceUpdateResponse.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceUpdateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{3}
-}
-
-type StreamRegistryServiceDeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *StreamRegistryServiceDeleteRequest) Reset() {
-	*x = StreamRegistryServiceDeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceDeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceDeleteRequest) ProtoMessage() {}
-
-func (x *StreamRegistryServiceDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceDeleteRequest.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *StreamRegistryServiceDeleteRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type StreamRegistryServiceDeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
-}
-
-func (x *StreamRegistryServiceDeleteResponse) Reset() {
-	*x = StreamRegistryServiceDeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceDeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceDeleteResponse) ProtoMessage() {}
-
-func (x *StreamRegistryServiceDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceDeleteResponse.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *StreamRegistryServiceDeleteResponse) GetDeleted() bool {
-	if x != nil {
-		return x.Deleted
-	}
-	return false
-}
-
-type StreamRegistryServiceGetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *StreamRegistryServiceGetRequest) Reset() {
-	*x = StreamRegistryServiceGetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceGetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceGetRequest) ProtoMessage() {}
-
-func (x *StreamRegistryServiceGetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceGetRequest.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceGetRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *StreamRegistryServiceGetRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type StreamRegistryServiceGetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Stream *Stream `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"`
-}
-
-func (x *StreamRegistryServiceGetResponse) Reset() {
-	*x = StreamRegistryServiceGetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceGetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceGetResponse) ProtoMessage() {}
-
-func (x *StreamRegistryServiceGetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceGetResponse.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceGetResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *StreamRegistryServiceGetResponse) GetStream() *Stream {
-	if x != nil {
-		return x.Stream
-	}
-	return nil
-}
-
-type StreamRegistryServiceExistRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *StreamRegistryServiceExistRequest) Reset() {
-	*x = StreamRegistryServiceExistRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceExistRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceExistRequest) ProtoMessage() {}
-
-func (x *StreamRegistryServiceExistRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceExistRequest.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceExistRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *StreamRegistryServiceExistRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type StreamRegistryServiceExistResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	HasGroup  bool `protobuf:"varint,1,opt,name=has_group,json=hasGroup,proto3" json:"has_group,omitempty"`
-	HasStream bool `protobuf:"varint,2,opt,name=has_stream,json=hasStream,proto3" json:"has_stream,omitempty"`
-}
-
-func (x *StreamRegistryServiceExistResponse) Reset() {
-	*x = StreamRegistryServiceExistResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceExistResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceExistResponse) ProtoMessage() {}
-
-func (x *StreamRegistryServiceExistResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceExistResponse.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceExistResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *StreamRegistryServiceExistResponse) GetHasGroup() bool {
-	if x != nil {
-		return x.HasGroup
-	}
-	return false
-}
-
-func (x *StreamRegistryServiceExistResponse) GetHasStream() bool {
-	if x != nil {
-		return x.HasStream
-	}
-	return false
-}
-
-type StreamRegistryServiceListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *StreamRegistryServiceListRequest) Reset() {
-	*x = StreamRegistryServiceListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceListRequest) ProtoMessage() {}
-
-func (x *StreamRegistryServiceListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceListRequest.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceListRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{10}
-}
-
-func (x *StreamRegistryServiceListRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type StreamRegistryServiceListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Stream []*Stream `protobuf:"bytes,1,rep,name=stream,proto3" json:"stream,omitempty"`
-}
-
-func (x *StreamRegistryServiceListResponse) Reset() {
-	*x = StreamRegistryServiceListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StreamRegistryServiceListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StreamRegistryServiceListResponse) ProtoMessage() {}
-
-func (x *StreamRegistryServiceListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StreamRegistryServiceListResponse.ProtoReflect.Descriptor instead.
-func (*StreamRegistryServiceListResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{11}
-}
-
-func (x *StreamRegistryServiceListResponse) GetStream() []*Stream {
-	if x != nil {
-		return x.Stream
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceCreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRuleBinding *IndexRuleBinding `protobuf:"bytes,1,opt,name=index_rule_binding,json=indexRuleBinding,proto3" json:"index_rule_binding,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceCreateRequest) Reset() {
-	*x = IndexRuleBindingRegistryServiceCreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceCreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceCreateRequest) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceCreateRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceCreateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{12}
-}
-
-func (x *IndexRuleBindingRegistryServiceCreateRequest) GetIndexRuleBinding() *IndexRuleBinding {
-	if x != nil {
-		return x.IndexRuleBinding
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceCreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *IndexRuleBindingRegistryServiceCreateResponse) Reset() {
-	*x = IndexRuleBindingRegistryServiceCreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceCreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceCreateResponse) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceCreateResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceCreateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{13}
-}
-
-type IndexRuleBindingRegistryServiceUpdateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRuleBinding *IndexRuleBinding `protobuf:"bytes,1,opt,name=index_rule_binding,json=indexRuleBinding,proto3" json:"index_rule_binding,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceUpdateRequest) Reset() {
-	*x = IndexRuleBindingRegistryServiceUpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceUpdateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceUpdateRequest) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceUpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceUpdateRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceUpdateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *IndexRuleBindingRegistryServiceUpdateRequest) GetIndexRuleBinding() *IndexRuleBinding {
-	if x != nil {
-		return x.IndexRuleBinding
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceUpdateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *IndexRuleBindingRegistryServiceUpdateResponse) Reset() {
-	*x = IndexRuleBindingRegistryServiceUpdateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceUpdateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceUpdateResponse) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceUpdateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceUpdateResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceUpdateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{15}
-}
-
-type IndexRuleBindingRegistryServiceDeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceDeleteRequest) Reset() {
-	*x = IndexRuleBindingRegistryServiceDeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceDeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceDeleteRequest) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceDeleteRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{16}
-}
-
-func (x *IndexRuleBindingRegistryServiceDeleteRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceDeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceDeleteResponse) Reset() {
-	*x = IndexRuleBindingRegistryServiceDeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceDeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceDeleteResponse) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceDeleteResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{17}
-}
-
-func (x *IndexRuleBindingRegistryServiceDeleteResponse) GetDeleted() bool {
-	if x != nil {
-		return x.Deleted
-	}
-	return false
-}
-
-type IndexRuleBindingRegistryServiceGetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceGetRequest) Reset() {
-	*x = IndexRuleBindingRegistryServiceGetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceGetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceGetRequest) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceGetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceGetRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceGetRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{18}
-}
-
-func (x *IndexRuleBindingRegistryServiceGetRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceGetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRuleBinding *IndexRuleBinding `protobuf:"bytes,1,opt,name=index_rule_binding,json=indexRuleBinding,proto3" json:"index_rule_binding,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceGetResponse) Reset() {
-	*x = IndexRuleBindingRegistryServiceGetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceGetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceGetResponse) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceGetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceGetResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceGetResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{19}
-}
-
-func (x *IndexRuleBindingRegistryServiceGetResponse) GetIndexRuleBinding() *IndexRuleBinding {
-	if x != nil {
-		return x.IndexRuleBinding
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceListRequest) Reset() {
-	*x = IndexRuleBindingRegistryServiceListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceListRequest) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceListRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceListRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{20}
-}
-
-func (x *IndexRuleBindingRegistryServiceListRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type IndexRuleBindingRegistryServiceListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRuleBinding []*IndexRuleBinding `protobuf:"bytes,1,rep,name=index_rule_binding,json=indexRuleBinding,proto3" json:"index_rule_binding,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceListResponse) Reset() {
-	*x = IndexRuleBindingRegistryServiceListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceListResponse) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceListResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceListResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{21}
-}
-
-func (x *IndexRuleBindingRegistryServiceListResponse) GetIndexRuleBinding() []*IndexRuleBinding {
-	if x != nil {
-		return x.IndexRuleBinding
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceExistRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceExistRequest) Reset() {
-	*x = IndexRuleBindingRegistryServiceExistRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceExistRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceExistRequest) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceExistRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceExistRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceExistRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{22}
-}
-
-func (x *IndexRuleBindingRegistryServiceExistRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type IndexRuleBindingRegistryServiceExistResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	HasGroup            bool `protobuf:"varint,1,opt,name=has_group,json=hasGroup,proto3" json:"has_group,omitempty"`
-	HasIndexRuleBinding bool `protobuf:"varint,2,opt,name=has_index_rule_binding,json=hasIndexRuleBinding,proto3" json:"has_index_rule_binding,omitempty"`
-}
-
-func (x *IndexRuleBindingRegistryServiceExistResponse) Reset() {
-	*x = IndexRuleBindingRegistryServiceExistResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleBindingRegistryServiceExistResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleBindingRegistryServiceExistResponse) ProtoMessage() {}
-
-func (x *IndexRuleBindingRegistryServiceExistResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleBindingRegistryServiceExistResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleBindingRegistryServiceExistResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{23}
-}
-
-func (x *IndexRuleBindingRegistryServiceExistResponse) GetHasGroup() bool {
-	if x != nil {
-		return x.HasGroup
-	}
-	return false
-}
-
-func (x *IndexRuleBindingRegistryServiceExistResponse) GetHasIndexRuleBinding() bool {
-	if x != nil {
-		return x.HasIndexRuleBinding
-	}
-	return false
-}
-
-type IndexRuleRegistryServiceCreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRule *IndexRule `protobuf:"bytes,1,opt,name=index_rule,json=indexRule,proto3" json:"index_rule,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceCreateRequest) Reset() {
-	*x = IndexRuleRegistryServiceCreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceCreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceCreateRequest) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceCreateRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceCreateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{24}
-}
-
-func (x *IndexRuleRegistryServiceCreateRequest) GetIndexRule() *IndexRule {
-	if x != nil {
-		return x.IndexRule
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceCreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *IndexRuleRegistryServiceCreateResponse) Reset() {
-	*x = IndexRuleRegistryServiceCreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[25]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceCreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceCreateResponse) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[25]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceCreateResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceCreateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{25}
-}
-
-type IndexRuleRegistryServiceUpdateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRule *IndexRule `protobuf:"bytes,1,opt,name=index_rule,json=indexRule,proto3" json:"index_rule,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceUpdateRequest) Reset() {
-	*x = IndexRuleRegistryServiceUpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[26]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceUpdateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceUpdateRequest) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceUpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[26]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceUpdateRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceUpdateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{26}
-}
-
-func (x *IndexRuleRegistryServiceUpdateRequest) GetIndexRule() *IndexRule {
-	if x != nil {
-		return x.IndexRule
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceUpdateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *IndexRuleRegistryServiceUpdateResponse) Reset() {
-	*x = IndexRuleRegistryServiceUpdateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[27]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceUpdateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceUpdateResponse) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceUpdateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[27]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceUpdateResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceUpdateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{27}
-}
-
-type IndexRuleRegistryServiceDeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceDeleteRequest) Reset() {
-	*x = IndexRuleRegistryServiceDeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[28]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceDeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceDeleteRequest) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[28]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceDeleteRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{28}
-}
-
-func (x *IndexRuleRegistryServiceDeleteRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceDeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceDeleteResponse) Reset() {
-	*x = IndexRuleRegistryServiceDeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[29]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceDeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceDeleteResponse) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[29]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceDeleteResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{29}
-}
-
-func (x *IndexRuleRegistryServiceDeleteResponse) GetDeleted() bool {
-	if x != nil {
-		return x.Deleted
-	}
-	return false
-}
-
-type IndexRuleRegistryServiceGetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceGetRequest) Reset() {
-	*x = IndexRuleRegistryServiceGetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[30]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceGetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceGetRequest) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceGetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[30]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceGetRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceGetRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{30}
-}
-
-func (x *IndexRuleRegistryServiceGetRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceGetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRule *IndexRule `protobuf:"bytes,1,opt,name=index_rule,json=indexRule,proto3" json:"index_rule,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceGetResponse) Reset() {
-	*x = IndexRuleRegistryServiceGetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[31]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceGetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceGetResponse) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceGetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[31]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceGetResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceGetResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{31}
-}
-
-func (x *IndexRuleRegistryServiceGetResponse) GetIndexRule() *IndexRule {
-	if x != nil {
-		return x.IndexRule
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceListRequest) Reset() {
-	*x = IndexRuleRegistryServiceListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[32]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceListRequest) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[32]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceListRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceListRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{32}
-}
-
-func (x *IndexRuleRegistryServiceListRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type IndexRuleRegistryServiceListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	IndexRule []*IndexRule `protobuf:"bytes,1,rep,name=index_rule,json=indexRule,proto3" json:"index_rule,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceListResponse) Reset() {
-	*x = IndexRuleRegistryServiceListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[33]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceListResponse) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[33]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceListResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceListResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{33}
-}
-
-func (x *IndexRuleRegistryServiceListResponse) GetIndexRule() []*IndexRule {
-	if x != nil {
-		return x.IndexRule
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceExistRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceExistRequest) Reset() {
-	*x = IndexRuleRegistryServiceExistRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[34]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceExistRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceExistRequest) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceExistRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[34]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceExistRequest.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceExistRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{34}
-}
-
-func (x *IndexRuleRegistryServiceExistRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type IndexRuleRegistryServiceExistResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	HasGroup     bool `protobuf:"varint,1,opt,name=has_group,json=hasGroup,proto3" json:"has_group,omitempty"`
-	HasIndexRule bool `protobuf:"varint,2,opt,name=has_index_rule,json=hasIndexRule,proto3" json:"has_index_rule,omitempty"`
-}
-
-func (x *IndexRuleRegistryServiceExistResponse) Reset() {
-	*x = IndexRuleRegistryServiceExistResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[35]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *IndexRuleRegistryServiceExistResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*IndexRuleRegistryServiceExistResponse) ProtoMessage() {}
-
-func (x *IndexRuleRegistryServiceExistResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[35]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IndexRuleRegistryServiceExistResponse.ProtoReflect.Descriptor instead.
-func (*IndexRuleRegistryServiceExistResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{35}
-}
-
-func (x *IndexRuleRegistryServiceExistResponse) GetHasGroup() bool {
-	if x != nil {
-		return x.HasGroup
-	}
-	return false
-}
-
-func (x *IndexRuleRegistryServiceExistResponse) GetHasIndexRule() bool {
-	if x != nil {
-		return x.HasIndexRule
-	}
-	return false
-}
-
-type MeasureRegistryServiceCreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Measure *Measure `protobuf:"bytes,1,opt,name=measure,proto3" json:"measure,omitempty"`
-}
-
-func (x *MeasureRegistryServiceCreateRequest) Reset() {
-	*x = MeasureRegistryServiceCreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[36]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceCreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceCreateRequest) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[36]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceCreateRequest.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceCreateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{36}
-}
-
-func (x *MeasureRegistryServiceCreateRequest) GetMeasure() *Measure {
-	if x != nil {
-		return x.Measure
-	}
-	return nil
-}
-
-type MeasureRegistryServiceCreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *MeasureRegistryServiceCreateResponse) Reset() {
-	*x = MeasureRegistryServiceCreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[37]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceCreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceCreateResponse) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[37]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceCreateResponse.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceCreateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{37}
-}
-
-type MeasureRegistryServiceUpdateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Measure *Measure `protobuf:"bytes,1,opt,name=measure,proto3" json:"measure,omitempty"`
-}
-
-func (x *MeasureRegistryServiceUpdateRequest) Reset() {
-	*x = MeasureRegistryServiceUpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[38]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceUpdateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceUpdateRequest) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceUpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[38]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceUpdateRequest.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceUpdateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{38}
-}
-
-func (x *MeasureRegistryServiceUpdateRequest) GetMeasure() *Measure {
-	if x != nil {
-		return x.Measure
-	}
-	return nil
-}
-
-type MeasureRegistryServiceUpdateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *MeasureRegistryServiceUpdateResponse) Reset() {
-	*x = MeasureRegistryServiceUpdateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[39]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceUpdateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceUpdateResponse) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceUpdateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[39]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceUpdateResponse.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceUpdateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{39}
-}
-
-type MeasureRegistryServiceDeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *MeasureRegistryServiceDeleteRequest) Reset() {
-	*x = MeasureRegistryServiceDeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[40]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceDeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceDeleteRequest) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[40]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceDeleteRequest.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{40}
-}
-
-func (x *MeasureRegistryServiceDeleteRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type MeasureRegistryServiceDeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
-}
-
-func (x *MeasureRegistryServiceDeleteResponse) Reset() {
-	*x = MeasureRegistryServiceDeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[41]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceDeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceDeleteResponse) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[41]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceDeleteResponse.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{41}
-}
-
-func (x *MeasureRegistryServiceDeleteResponse) GetDeleted() bool {
-	if x != nil {
-		return x.Deleted
-	}
-	return false
-}
-
-type MeasureRegistryServiceGetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *MeasureRegistryServiceGetRequest) Reset() {
-	*x = MeasureRegistryServiceGetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[42]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceGetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceGetRequest) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceGetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[42]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceGetRequest.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceGetRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{42}
-}
-
-func (x *MeasureRegistryServiceGetRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type MeasureRegistryServiceGetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Measure *Measure `protobuf:"bytes,1,opt,name=measure,proto3" json:"measure,omitempty"`
-}
-
-func (x *MeasureRegistryServiceGetResponse) Reset() {
-	*x = MeasureRegistryServiceGetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[43]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceGetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceGetResponse) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceGetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[43]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceGetResponse.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceGetResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{43}
-}
-
-func (x *MeasureRegistryServiceGetResponse) GetMeasure() *Measure {
-	if x != nil {
-		return x.Measure
-	}
-	return nil
-}
-
-type MeasureRegistryServiceListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *MeasureRegistryServiceListRequest) Reset() {
-	*x = MeasureRegistryServiceListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[44]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceListRequest) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[44]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceListRequest.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceListRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{44}
-}
-
-func (x *MeasureRegistryServiceListRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type MeasureRegistryServiceListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Measure []*Measure `protobuf:"bytes,1,rep,name=measure,proto3" json:"measure,omitempty"`
-}
-
-func (x *MeasureRegistryServiceListResponse) Reset() {
-	*x = MeasureRegistryServiceListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[45]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceListResponse) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[45]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceListResponse.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceListResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{45}
-}
-
-func (x *MeasureRegistryServiceListResponse) GetMeasure() []*Measure {
-	if x != nil {
-		return x.Measure
-	}
-	return nil
-}
-
-type MeasureRegistryServiceExistRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *MeasureRegistryServiceExistRequest) Reset() {
-	*x = MeasureRegistryServiceExistRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[46]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceExistRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceExistRequest) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceExistRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[46]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceExistRequest.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceExistRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{46}
-}
-
-func (x *MeasureRegistryServiceExistRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type MeasureRegistryServiceExistResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	HasGroup   bool `protobuf:"varint,1,opt,name=has_group,json=hasGroup,proto3" json:"has_group,omitempty"`
-	HasMeasure bool `protobuf:"varint,2,opt,name=has_measure,json=hasMeasure,proto3" json:"has_measure,omitempty"`
-}
-
-func (x *MeasureRegistryServiceExistResponse) Reset() {
-	*x = MeasureRegistryServiceExistResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[47]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *MeasureRegistryServiceExistResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MeasureRegistryServiceExistResponse) ProtoMessage() {}
-
-func (x *MeasureRegistryServiceExistResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[47]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MeasureRegistryServiceExistResponse.ProtoReflect.Descriptor instead.
-func (*MeasureRegistryServiceExistResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{47}
-}
-
-func (x *MeasureRegistryServiceExistResponse) GetHasGroup() bool {
-	if x != nil {
-		return x.HasGroup
-	}
-	return false
-}
-
-func (x *MeasureRegistryServiceExistResponse) GetHasMeasure() bool {
-	if x != nil {
-		return x.HasMeasure
-	}
-	return false
-}
-
-type GroupRegistryServiceCreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group *v1.Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceCreateRequest) Reset() {
-	*x = GroupRegistryServiceCreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[48]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceCreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceCreateRequest) ProtoMessage() {}
-
-func (x *GroupRegistryServiceCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[48]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceCreateRequest.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceCreateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{48}
-}
-
-func (x *GroupRegistryServiceCreateRequest) GetGroup() *v1.Group {
-	if x != nil {
-		return x.Group
-	}
-	return nil
-}
-
-type GroupRegistryServiceCreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *GroupRegistryServiceCreateResponse) Reset() {
-	*x = GroupRegistryServiceCreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[49]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceCreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceCreateResponse) ProtoMessage() {}
-
-func (x *GroupRegistryServiceCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[49]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceCreateResponse.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceCreateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{49}
-}
-
-type GroupRegistryServiceUpdateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group *v1.Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceUpdateRequest) Reset() {
-	*x = GroupRegistryServiceUpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[50]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceUpdateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceUpdateRequest) ProtoMessage() {}
-
-func (x *GroupRegistryServiceUpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[50]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceUpdateRequest.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceUpdateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{50}
-}
-
-func (x *GroupRegistryServiceUpdateRequest) GetGroup() *v1.Group {
-	if x != nil {
-		return x.Group
-	}
-	return nil
-}
-
-type GroupRegistryServiceUpdateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *GroupRegistryServiceUpdateResponse) Reset() {
-	*x = GroupRegistryServiceUpdateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[51]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceUpdateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceUpdateResponse) ProtoMessage() {}
-
-func (x *GroupRegistryServiceUpdateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[51]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceUpdateResponse.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceUpdateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{51}
-}
-
-type GroupRegistryServiceDeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceDeleteRequest) Reset() {
-	*x = GroupRegistryServiceDeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[52]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceDeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceDeleteRequest) ProtoMessage() {}
-
-func (x *GroupRegistryServiceDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[52]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceDeleteRequest.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{52}
-}
-
-func (x *GroupRegistryServiceDeleteRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type GroupRegistryServiceDeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
-}
-
-func (x *GroupRegistryServiceDeleteResponse) Reset() {
-	*x = GroupRegistryServiceDeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[53]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceDeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceDeleteResponse) ProtoMessage() {}
-
-func (x *GroupRegistryServiceDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[53]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceDeleteResponse.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{53}
-}
-
-func (x *GroupRegistryServiceDeleteResponse) GetDeleted() bool {
-	if x != nil {
-		return x.Deleted
-	}
-	return false
-}
-
-type GroupRegistryServiceGetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceGetRequest) Reset() {
-	*x = GroupRegistryServiceGetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[54]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceGetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceGetRequest) ProtoMessage() {}
-
-func (x *GroupRegistryServiceGetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[54]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceGetRequest.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceGetRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{54}
-}
-
-func (x *GroupRegistryServiceGetRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type GroupRegistryServiceGetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group *v1.Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceGetResponse) Reset() {
-	*x = GroupRegistryServiceGetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[55]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceGetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceGetResponse) ProtoMessage() {}
-
-func (x *GroupRegistryServiceGetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[55]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceGetResponse.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceGetResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{55}
-}
-
-func (x *GroupRegistryServiceGetResponse) GetGroup() *v1.Group {
-	if x != nil {
-		return x.Group
-	}
-	return nil
-}
-
-type GroupRegistryServiceListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *GroupRegistryServiceListRequest) Reset() {
-	*x = GroupRegistryServiceListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[56]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceListRequest) ProtoMessage() {}
-
-func (x *GroupRegistryServiceListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[56]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceListRequest.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceListRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{56}
-}
-
-type GroupRegistryServiceListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group []*v1.Group `protobuf:"bytes,1,rep,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceListResponse) Reset() {
-	*x = GroupRegistryServiceListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[57]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceListResponse) ProtoMessage() {}
-
-func (x *GroupRegistryServiceListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[57]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceListResponse.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceListResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{57}
-}
-
-func (x *GroupRegistryServiceListResponse) GetGroup() []*v1.Group {
-	if x != nil {
-		return x.Group
-	}
-	return nil
-}
-
-type GroupRegistryServiceExistRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *GroupRegistryServiceExistRequest) Reset() {
-	*x = GroupRegistryServiceExistRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[58]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceExistRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceExistRequest) ProtoMessage() {}
-
-func (x *GroupRegistryServiceExistRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[58]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceExistRequest.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceExistRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{58}
-}
-
-func (x *GroupRegistryServiceExistRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type GroupRegistryServiceExistResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	HasGroup bool `protobuf:"varint,1,opt,name=has_group,json=hasGroup,proto3" json:"has_group,omitempty"`
-}
-
-func (x *GroupRegistryServiceExistResponse) Reset() {
-	*x = GroupRegistryServiceExistResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[59]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GroupRegistryServiceExistResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GroupRegistryServiceExistResponse) ProtoMessage() {}
-
-func (x *GroupRegistryServiceExistResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[59]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GroupRegistryServiceExistResponse.ProtoReflect.Descriptor instead.
-func (*GroupRegistryServiceExistResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{59}
-}
-
-func (x *GroupRegistryServiceExistResponse) GetHasGroup() bool {
-	if x != nil {
-		return x.HasGroup
-	}
-	return false
-}
-
-type TopNAggregationRegistryServiceCreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	TopNAggregation *TopNAggregation `protobuf:"bytes,1,opt,name=top_n_aggregation,json=topNAggregation,proto3" json:"top_n_aggregation,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceCreateRequest) Reset() {
-	*x = TopNAggregationRegistryServiceCreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[60]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceCreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceCreateRequest) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceCreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[60]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceCreateRequest.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceCreateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{60}
-}
-
-func (x *TopNAggregationRegistryServiceCreateRequest) GetTopNAggregation() *TopNAggregation {
-	if x != nil {
-		return x.TopNAggregation
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceCreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *TopNAggregationRegistryServiceCreateResponse) Reset() {
-	*x = TopNAggregationRegistryServiceCreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[61]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceCreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceCreateResponse) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceCreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[61]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceCreateResponse.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceCreateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{61}
-}
-
-type TopNAggregationRegistryServiceUpdateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	TopNAggregation *TopNAggregation `protobuf:"bytes,1,opt,name=top_n_aggregation,json=topNAggregation,proto3" json:"top_n_aggregation,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceUpdateRequest) Reset() {
-	*x = TopNAggregationRegistryServiceUpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[62]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceUpdateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceUpdateRequest) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceUpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[62]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceUpdateRequest.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceUpdateRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{62}
-}
-
-func (x *TopNAggregationRegistryServiceUpdateRequest) GetTopNAggregation() *TopNAggregation {
-	if x != nil {
-		return x.TopNAggregation
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceUpdateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *TopNAggregationRegistryServiceUpdateResponse) Reset() {
-	*x = TopNAggregationRegistryServiceUpdateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[63]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceUpdateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceUpdateResponse) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceUpdateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[63]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceUpdateResponse.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceUpdateResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{63}
-}
-
-type TopNAggregationRegistryServiceDeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceDeleteRequest) Reset() {
-	*x = TopNAggregationRegistryServiceDeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[64]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceDeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceDeleteRequest) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceDeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[64]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceDeleteRequest.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceDeleteRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{64}
-}
-
-func (x *TopNAggregationRegistryServiceDeleteRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceDeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceDeleteResponse) Reset() {
-	*x = TopNAggregationRegistryServiceDeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[65]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceDeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceDeleteResponse) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceDeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[65]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceDeleteResponse.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceDeleteResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{65}
-}
-
-func (x *TopNAggregationRegistryServiceDeleteResponse) GetDeleted() bool {
-	if x != nil {
-		return x.Deleted
-	}
-	return false
-}
-
-type TopNAggregationRegistryServiceGetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceGetRequest) Reset() {
-	*x = TopNAggregationRegistryServiceGetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[66]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceGetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceGetRequest) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceGetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[66]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceGetRequest.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceGetRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{66}
-}
-
-func (x *TopNAggregationRegistryServiceGetRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceGetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	TopNAggregation *TopNAggregation `protobuf:"bytes,1,opt,name=top_n_aggregation,json=topNAggregation,proto3" json:"top_n_aggregation,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceGetResponse) Reset() {
-	*x = TopNAggregationRegistryServiceGetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[67]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceGetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceGetResponse) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceGetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[67]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceGetResponse.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceGetResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{67}
-}
-
-func (x *TopNAggregationRegistryServiceGetResponse) GetTopNAggregation() *TopNAggregation {
-	if x != nil {
-		return x.TopNAggregation
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceListRequest) Reset() {
-	*x = TopNAggregationRegistryServiceListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[68]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceListRequest) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[68]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceListRequest.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceListRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{68}
-}
-
-func (x *TopNAggregationRegistryServiceListRequest) GetGroup() string {
-	if x != nil {
-		return x.Group
-	}
-	return ""
-}
-
-type TopNAggregationRegistryServiceListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	TopNAggregation []*TopNAggregation `protobuf:"bytes,1,rep,name=top_n_aggregation,json=topNAggregation,proto3" json:"top_n_aggregation,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceListResponse) Reset() {
-	*x = TopNAggregationRegistryServiceListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[69]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceListResponse) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[69]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceListResponse.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceListResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{69}
-}
-
-func (x *TopNAggregationRegistryServiceListResponse) GetTopNAggregation() []*TopNAggregation {
-	if x != nil {
-		return x.TopNAggregation
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceExistRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceExistRequest) Reset() {
-	*x = TopNAggregationRegistryServiceExistRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[70]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceExistRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceExistRequest) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceExistRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[70]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceExistRequest.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceExistRequest) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{70}
-}
-
-func (x *TopNAggregationRegistryServiceExistRequest) GetMetadata() *v1.Metadata {
-	if x != nil {
-		return x.Metadata
-	}
-	return nil
-}
-
-type TopNAggregationRegistryServiceExistResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	HasGroup           bool `protobuf:"varint,1,opt,name=has_group,json=hasGroup,proto3" json:"has_group,omitempty"`
-	HasTopNAggregation bool `protobuf:"varint,2,opt,name=has_top_n_aggregation,json=hasTopNAggregation,proto3" json:"has_top_n_aggregation,omitempty"`
-}
-
-func (x *TopNAggregationRegistryServiceExistResponse) Reset() {
-	*x = TopNAggregationRegistryServiceExistResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_banyandb_database_v1_rpc_proto_msgTypes[71]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TopNAggregationRegistryServiceExistResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TopNAggregationRegistryServiceExistResponse) ProtoMessage() {}
-
-func (x *TopNAggregationRegistryServiceExistResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_banyandb_database_v1_rpc_proto_msgTypes[71]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TopNAggregationRegistryServiceExistResponse.ProtoReflect.Descriptor instead.
-func (*TopNAggregationRegistryServiceExistResponse) Descriptor() ([]byte, []int) {
-	return file_banyandb_database_v1_rpc_proto_rawDescGZIP(), []int{71}
-}
-
-func (x *TopNAggregationRegistryServiceExistResponse) GetHasGroup() bool {
-	if x != nil {
-		return x.HasGroup
-	}
-	return false
-}
-
-func (x *TopNAggregationRegistryServiceExistResponse) GetHasTopNAggregation() bool {
-	if x != nil {
-		return x.HasTopNAggregation
-	}
-	return false
-}
-
-var File_banyandb_database_v1_rpc_proto protoreflect.FileDescriptor
-
-var file_banyandb_database_v1_rpc_proto_rawDesc = []byte{
-	0x0a, 0x1e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x12, 0x14, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x21, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68,
-	0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
-	0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x22, 0x53, 0x74, 0x72, 0x65,
-	0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34,
-	0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, 0x74,
-	0x72, 0x65, 0x61, 0x6d, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65,
-	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65,
-	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x22, 0x53,
-	0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52,
-	0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x74, 0x72, 0x65, 0x61,
-	0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e,
-	0x0a, 0x22, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61,
-	0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3f,
-	0x0a, 0x23, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22,
-	0x5b, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x58, 0x0a, 0x20,
-	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x06,
-	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x5d, 0x0a, 0x21, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45,
-	0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d,
-	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
-	0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x60, 0x0a, 0x22, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68,
-	0x61, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
-	0x68, 0x61, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f,
-	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61,
-	0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x38, 0x0a, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61,
-	0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67,
-	0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
-	0x70, 0x22, 0x59, 0x0a, 0x21, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73,
-	0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
-	0x72, 0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x84, 0x01, 0x0a,
-	0x2c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
-	0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a,
-	0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64,
-	0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
-	0x67, 0x52, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64,
-	0x69, 0x6e, 0x67, 0x22, 0x2f, 0x0a, 0x2d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65,
-	0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x2c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75,
-	0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72,
-	0x75, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x26, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75,
-	0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x2f, 0x0a, 0x2d, 0x49,
-	0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70,
-	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x0a, 0x2c,
-	0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44,
-	0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08,
-	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x49, 0x0a, 0x2d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52,
-	0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
-	0x64, 0x22, 0x65, 0x0a, 0x29, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69,
-	0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38,
-	0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08,
-	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x01, 0x0a, 0x2a, 0x49, 0x6e, 0x64,
-	0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64,
-	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78,
-	0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x69, 0x6e, 0x64,
-	0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x42, 0x0a,
-	0x2a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
-	0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67,
-	0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
-	0x70, 0x22, 0x83, 0x01, 0x0a, 0x2b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42,
-	0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x54, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f,
-	0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69,
-	0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65,
-	0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x67, 0x0a, 0x2b, 0x49, 0x6e, 0x64, 0x65, 0x78,
-	0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73,
-	0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x22, 0x80, 0x01, 0x0a, 0x2c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69,
-	0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x33,
-	0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65,
-	0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13,
-	0x68, 0x61, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64,
-	0x69, 0x6e, 0x67, 0x22, 0x67, 0x0a, 0x25, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43,
-	0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0a,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1f, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c,
-	0x65, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x28, 0x0a, 0x26,
-	0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x25, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52,
-	0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
-	0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64,
-	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78,
-	0x52, 0x75, 0x6c, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x22,
-	0x28, 0x0a, 0x26, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x25, 0x49, 0x6e, 0x64,
-	0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x42, 0x0a, 0x26,
-	0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
-	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,
-	0x22, 0x5e, 0x0a, 0x22, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x22, 0x65, 0x0a, 0x23, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x09, 0x69, 0x6e,
-	0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x3b, 0x0a, 0x23, 0x49, 0x6e, 0x64, 0x65, 0x78,
-	0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14,
-	0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67,
-	0x72, 0x6f, 0x75, 0x70, 0x22, 0x66, 0x0a, 0x24, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c,
-	0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x1f, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c,
-	0x65, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x60, 0x0a, 0x24,
-	0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61,
-	0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6a,
-	0x0a, 0x25, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
-	0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x67,
-	0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x47,
-	0x72, 0x6f, 0x75, 0x70, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65,
-	0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61,
-	0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x5e, 0x0a, 0x23, 0x4d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72,
-	0x65, 0x52, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x22, 0x5e, 0x0a, 0x23, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x61,
-	0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75,
-	0x72, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x0a, 0x23, 0x4d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
-	0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x40, 0x0a, 0x24, 0x4d,
-	0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x5c, 0x0a,
-	0x20, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
-	0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5c, 0x0a, 0x21, 0x4d,
-	0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65,
-	0x52, 0x07, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x22, 0x39, 0x0a, 0x21, 0x4d, 0x65, 0x61,
-	0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14,
-	0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67,
-	0x72, 0x6f, 0x75, 0x70, 0x22, 0x5d, 0x0a, 0x22, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x61, 0x73,
-	0x75, 0x72, 0x65, 0x22, 0x5e, 0x0a, 0x22, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65,
-	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
-	0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
-	0x61, 0x74, 0x61, 0x22, 0x63, 0x0a, 0x23, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65,
-	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61,
-	0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68,
-	0x61, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x6d,
-	0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61,
-	0x73, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x22, 0x54, 0x0a, 0x21, 0x47, 0x72, 0x6f, 0x75,
-	0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a,
-	0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62,
-	0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
-	0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x24,
-	0x0a, 0x22, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x21, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x67, 0x72, 0x6f,
-	0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72,
-	0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x24, 0x0a, 0x22, 0x47, 0x72,
-	0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x39, 0x0a, 0x21, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e, 0x0a, 0x22, 0x47,
-	0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x36, 0x0a, 0x1e, 0x47,
-	0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a,
-	0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72,
-	0x6f, 0x75, 0x70, 0x22, 0x52, 0x0a, 0x1f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
-	0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x21, 0x0a, 0x1f, 0x47, 0x72, 0x6f, 0x75, 0x70,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x20, 0x47, 0x72,
-	0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f,
-	0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
-	0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22,
-	0x38, 0x0a, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x40, 0x0a, 0x21, 0x47, 0x72, 0x6f,
-	0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b,
-	0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x2b,
-	0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72,
-	0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x11, 0x74,
-	0x6f, 0x70, 0x5f, 0x6e, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f,
-	0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74,
-	0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2e,
-	0x0a, 0x2c, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80,
-	0x01, 0x0a, 0x2b, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51,
-	0x0a, 0x11, 0x74, 0x6f, 0x70, 0x5f, 0x6e, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x52, 0x0f, 0x74, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x22, 0x2e, 0x0a, 0x2c, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x67, 0x0a, 0x2b, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x48, 0x0a, 0x2c, 0x54, 0x6f,
-	0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65,
-	0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c,
-	0x65, 0x74, 0x65, 0x64, 0x22, 0x64, 0x0a, 0x28, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72,
-	0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7e, 0x0a, 0x29, 0x54, 0x6f,
-	0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x74, 0x6f, 0x70, 0x5f, 0x6e,
-	0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67,
-	0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x4e, 0x41,
-	0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x29, 0x54, 0x6f,
-	0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x7f, 0x0a,
-	0x2a, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x74,
-	0x6f, 0x70, 0x5f, 0x6e, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f,
-	0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74,
-	0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x66,
-	0x0a, 0x2a, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08,
-	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7d, 0x0a, 0x2b, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67,
-	0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x72, 0x6f,
-	0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x47, 0x72, 0x6f,
-	0x75, 0x70, 0x12, 0x31, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x6e, 0x5f,
-	0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x12, 0x68, 0x61, 0x73, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x90, 0x08, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
-	0x9b, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65,
-	0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72,
-	0x65, 0x61, 0x6d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x01, 0x2a, 0x12, 0xca, 0x01,
-	0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
-	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82,
-	0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61,
-	0x6d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
-	0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d,
-	0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
-	0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xb9, 0x01, 0x0a, 0x06, 0x44,
-	0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
-	0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x34, 0x2a, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x73,
-	0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e,
-	0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xb0, 0x01, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x35,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
-	0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82,
-	0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61,
-	0x6d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64,
-	0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa0, 0x01, 0x0a, 0x04, 0x4c, 0x69,
-	0x73, 0x74, 0x12, 0x36, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31,
-	0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x6c,
-	0x69, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0x7a, 0x0a, 0x05,
-	0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
-	0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe7, 0x09, 0x0a, 0x1f, 0x49, 0x6e, 0x64,
-	0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbb, 0x01, 0x0a,
-	0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x42, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e,
-	0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49,
-	0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72,
-	0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64,
-	0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e,
-	0x64, 0x65, 0x78, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67,
-	0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x02, 0x0a, 0x06, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x42, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64,
-	0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
-	0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f,
-	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x1a, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65,
-	0x78, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2f, 0x73,
-	0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c,
-	0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12,
-	0xd9, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x42, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69,
-	0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42,
-	0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x2a, 0x3e, 0x2f, 0x76, 0x31,
-	0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64,
-	0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61,
-	0x64, 0x61, 0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd0, 0x01, 0x0a, 0x03,
-	0x47, 0x65, 0x74, 0x12, 0x3f, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64,
-	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78,
-	0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73,
-	0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65,
-	0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e,
-	0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x62,
-	0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d,
-	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b,
-	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc0,
-	0x01, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e,
-	0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49,
-	0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
-	0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d,
-	0x72, 0x75, 0x6c, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68,
-	0x65, 0x6d, 0x61, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70,
-	0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x41, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64,
-	0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x42,
-	0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x32, 0xd4, 0x08, 0x0a, 0x18, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
-	0xa5, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
-	0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e,
-	0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49,
-	0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f,
-	0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x2f, 0x73, 0x63,
-	0x68, 0x65, 0x6d, 0x61, 0x3a, 0x01, 0x2a, 0x12, 0xdc, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x12, 0x3b, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52,
-	0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x3c, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x82,
-	0xd3, 0xe4, 0x93, 0x02, 0x51, 0x1a, 0x4c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x2d, 0x72, 0x75, 0x6c, 0x65, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x69, 0x6e,
-	0x64, 0x65, 0x78, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
-	0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f,
-	0x72, 0x75, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61,
-	0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xc3, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x12, 0x3b, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75,
-	0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65,
-	0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d,
-	0x72, 0x75, 0x6c, 0x65, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xba, 0x01, 0x0a,
-	0x03, 0x47, 0x65, 0x74, 0x12, 0x38, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65,
-	0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x38, 0x12, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d, 0x72, 0x75, 0x6c,
-	0x65, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
-	0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64,
-	0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x04, 0x4c, 0x69,
-	0x73, 0x74, 0x12, 0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52,
-	0x75, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65,
-	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2d, 0x72, 0x75, 0x6c,
-	0x65, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2f, 0x7b,
-	0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74,
-	0x12, 0x3a, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c,
-	0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x62,
-	0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
-	0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa4, 0x08, 0x0a, 0x16, 0x4d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12,
-	0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65,
-	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65,
-	0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12,
-	0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x63, 0x68, 0x65,
-	0x6d, 0x61, 0x3a, 0x01, 0x2a, 0x12, 0xcf, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x12, 0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70,
-	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x1a,
-	0x43, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x63, 0x68,
-	0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x2e, 0x6d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e,
-	0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xbc, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x12, 0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72,
-	0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x35, 0x2a, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x2f, 0x73,
-	0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e,
-	0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
-	0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xb3, 0x01, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x36,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
-	0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x61,
-	0x73, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x7b, 0x6d, 0x65,
-	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa3, 0x01, 0x0a,
-	0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61,
-	0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22,
-	0x12, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x63,
-	0x68, 0x65, 0x6d, 0x61, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75,
-	0x70, 0x7d, 0x12, 0x7c, 0x0a, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, 0x62, 0x61,
-	0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e,
-	0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61,
-	0x73, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x32, 0xab, 0x07, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x06, 0x43, 0x72,
-	0x65, 0x61, 0x74, 0x65, 0x12, 0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e,
-	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75,
-	0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22,
-	0x10, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d,
-	0x61, 0x3a, 0x01, 0x2a, 0x12, 0xae, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
-	0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69,
-	0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
-	0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, 0x26, 0x2f, 0x76, 0x31, 0x2f,
-	0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x67, 0x72,
-	0x6f, 0x75, 0x70, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6e, 0x61, 0x6d,
-	0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x9d, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
-	0x12, 0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x76, 0x31,
-	0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x67,
-	0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x34, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64,
-	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47,
-	0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x73, 0x63,
-	0x68, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0x95, 0x01, 0x0a,
-	0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f,
-	0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x62,
-	0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
-	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
-	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76,
-	0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x6c,
-	0x69, 0x73, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x36, 0x2e,
-	0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
-	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f,
-	0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xfa,
-	0x06, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x12, 0x8f, 0x01, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x62,
-	0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
-	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
-	0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x42, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65,
-	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x41,
-	0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
-	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x42, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74,
-	0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67,
-	0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
-	0x12, 0x41, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61,
-	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72,
-	0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64,
-	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41,
-	0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
-	0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12,
-	0x3e, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65,
-	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x3f, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65,
-	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65,
-	0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x89, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x2e, 0x62, 0x61, 0x6e, 0x79,
-	0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
-	0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x62, 0x61, 0x6e,
-	0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
-	0x31, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
-	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a,
-	0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x40, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64,
-	0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f,
-	0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
-	0x54, 0x6f, 0x70, 0x4e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
-	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x7b, 0x0a, 0x2a, 0x6f,
-	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
-	0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62, 0x2e, 0x64, 0x61,
-	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x73, 0x6b, 0x79,
-	0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x64, 0x62,
-	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x61, 0x6e, 0x79, 0x61,
-	0x6e, 0x64, 0x62, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x92,
-	0x41, 0x06, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_banyandb_database_v1_rpc_proto_rawDescOnce sync.Once
-	file_banyandb_database_v1_rpc_proto_rawDescData = file_banyandb_database_v1_rpc_proto_rawDesc
-)
-
-func file_banyandb_database_v1_rpc_proto_rawDescGZIP() []byte {
-	file_banyandb_database_v1_rpc_proto_rawDescOnce.Do(func() {
-		file_banyandb_database_v1_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_banyandb_database_v1_rpc_proto_rawDescData)
-	})
-	return file_banyandb_database_v1_rpc_proto_rawDescData
-}
-
-var file_banyandb_database_v1_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 72)
-var file_banyandb_database_v1_rpc_proto_goTypes = []interface{}{
-	(*StreamRegistryServiceCreateRequest)(nil),            // 0: banyandb.database.v1.StreamRegistryServiceCreateRequest
-	(*StreamRegistryServiceCreateResponse)(nil),           // 1: banyandb.database.v1.StreamRegistryServiceCreateResponse
-	(*StreamRegistryServiceUpdateRequest)(nil),            // 2: banyandb.database.v1.StreamRegistryServiceUpdateRequest
-	(*StreamRegistryServiceUpdateResponse)(nil),           // 3: banyandb.database.v1.StreamRegistryServiceUpdateResponse
-	(*StreamRegistryServiceDeleteRequest)(nil),            // 4: banyandb.database.v1.StreamRegistryServiceDeleteRequest
-	(*StreamRegistryServiceDeleteResponse)(nil),           // 5: banyandb.database.v1.StreamRegistryServiceDeleteResponse
-	(*StreamRegistryServiceGetRequest)(nil),               // 6: banyandb.database.v1.StreamRegistryServiceGetRequest
-	(*StreamRegistryServiceGetResponse)(nil),              // 7: banyandb.database.v1.StreamRegistryServiceGetResponse
-	(*StreamRegistryServiceExistRequest)(nil),             // 8: banyandb.database.v1.StreamRegistryServiceExistRequest
-	(*StreamRegistryServiceExistResponse)(nil),            // 9: banyandb.database.v1.StreamRegistryServiceExistResponse
-	(*StreamRegistryServiceListRequest)(nil),              // 10: banyandb.database.v1.StreamRegistryServiceListRequest
-	(*StreamRegistryServiceListResponse)(nil),             // 11: banyandb.database.v1.StreamRegistryServiceListResponse
-	(*IndexRuleBindingRegistryServiceCreateRequest)(nil),  // 12: banyandb.database.v1.IndexRuleBindingRegistryServiceCreateRequest
-	(*IndexRuleBindingRegistryServiceCreateResponse)(nil), // 13: banyandb.database.v1.IndexRuleBindingRegistryServiceCreateResponse
-	(*IndexRuleBindingRegistryServiceUpdateRequest)(nil),  // 14: banyandb.database.v1.IndexRuleBindingRegistryServiceUpdateRequest
-	(*IndexRuleBindingRegistryServiceUpdateResponse)(nil), // 15: banyandb.database.v1.IndexRuleBindingRegistryServiceUpdateResponse
-	(*IndexRuleBindingRegistryServiceDeleteRequest)(nil),  // 16: banyandb.database.v1.IndexRuleBindingRegistryServiceDeleteRequest
-	(*IndexRuleBindingRegistryServiceDeleteResponse)(nil), // 17: banyandb.database.v1.IndexRuleBindingRegistryServiceDeleteResponse
-	(*IndexRuleBindingRegistryServiceGetRequest)(nil),     // 18: banyandb.database.v1.IndexRuleBindingRegistryServiceGetRequest
-	(*IndexRuleBindingRegistryServiceGetResponse)(nil),    // 19: banyandb.database.v1.IndexRuleBindingRegistryServiceGetResponse
-	(*IndexRuleBindingRegistryServiceListRequest)(nil),    // 20: banyandb.database.v1.IndexRuleBindingRegistryServiceListRequest
-	(*IndexRuleBindingRegistryServiceListResponse)(nil),   // 21: banyandb.database.v1.IndexRuleBindingRegistryServiceListResponse
-	(*IndexRuleBindingRegistryServiceExistRequest)(nil),   // 22: banyandb.database.v1.IndexRuleBindingRegistryServiceExistRequest
-	(*IndexRuleBindingRegistryServiceExistResponse)(nil),  // 23: banyandb.database.v1.IndexRuleBindingRegistryServiceExistResponse
-	(*IndexRuleRegistryServiceCreateRequest)(nil),         // 24: banyandb.database.v1.IndexRuleRegistryServiceCreateRequest
-	(*IndexRuleRegistryServiceCreateResponse)(nil),        // 25: banyandb.database.v1.IndexRuleRegistryServiceCreateResponse
-	(*IndexRuleRegistryServiceUpdateRequest)(nil),         // 26: banyandb.database.v1.IndexRuleRegistryServiceUpdateRequest
-	(*IndexRuleRegistryServiceUpdateResponse)(nil),        // 27: banyandb.database.v1.IndexRuleRegistryServiceUpdateResponse
-	(*IndexRuleRegistryServiceDeleteRequest)(nil),         // 28: banyandb.database.v1.IndexRuleRegistryServiceDeleteRequest
-	(*IndexRuleRegistryServiceDeleteResponse)(nil),        // 29: banyandb.database.v1.IndexRuleRegistryServiceDeleteResponse
-	(*IndexRuleRegistryServiceGetRequest)(nil),            // 30: banyandb.database.v1.IndexRuleRegistryServiceGetRequest
-	(*IndexRuleRegistryServiceGetResponse)(nil),           // 31: banyandb.database.v1.IndexRuleRegistryServiceGetResponse
-	(*IndexRuleRegistryServiceListRequest)(nil),           // 32: banyandb.database.v1.IndexRuleRegistryServiceListRequest
-	(*IndexRuleRegistryServiceListResponse)(nil),          // 33: banyandb.database.v1.IndexRuleRegistryServiceListResponse
-	(*IndexRuleRegistryServiceExistRequest)(nil),          // 34: banyandb.database.v1.IndexRuleRegistryServiceExistRequest
-	(*IndexRuleRegistryServiceExistResponse)(nil),         // 35: banyandb.database.v1.IndexRuleRegistryServiceExistResponse
-	(*MeasureRegistryServiceCreateRequest)(nil),           // 36: banyandb.database.v1.MeasureRegistryServiceCreateRequest
-	(*MeasureRegistryServiceCreateResponse)(nil),          // 37: banyandb.database.v1.MeasureRegistryServiceCreateResponse
-	(*MeasureRegistryServiceUpdateRequest)(nil),           // 38: banyandb.database.v1.MeasureRegistryServiceUpdateRequest
-	(*MeasureRegistryServiceUpdateResponse)(nil),          // 39: banyandb.database.v1.MeasureRegistryServiceUpdateResponse
-	(*MeasureRegistryServiceDeleteRequest)(nil),           // 40: banyandb.database.v1.MeasureRegistryServiceDeleteRequest
-	(*MeasureRegistryServiceDeleteResponse)(nil),          // 41: banyandb.database.v1.MeasureRegistryServiceDeleteResponse
-	(*MeasureRegistryServiceGetRequest)(nil),              // 42: banyandb.database.v1.MeasureRegistryServiceGetRequest
-	(*MeasureRegistryServiceGetResponse)(nil),             // 43: banyandb.database.v1.MeasureRegistryServiceGetResponse
-	(*MeasureRegistryServiceListRequest)(nil),             // 44: banyandb.database.v1.MeasureRegistryServiceListRequest
-	(*MeasureRegistryServiceListResponse)(nil),            // 45: banyandb.database.v1.MeasureRegistryServiceListResponse
-	(*MeasureRegistryServiceExistRequest)(nil),            // 46: banyandb.database.v1.MeasureRegistryServiceExistRequest
-	(*MeasureRegistryServiceExistResponse)(nil),           // 47: banyandb.database.v1.MeasureRegistryServiceExistResponse
-	(*GroupRegistryServiceCreateRequest)(nil),             // 48: banyandb.database.v1.GroupRegistryServiceCreateRequest
-	(*GroupRegistryServiceCreateResponse)(nil),            // 49: banyandb.database.v1.GroupRegistryServiceCreateResponse
-	(*GroupRegistryServiceUpdateRequest)(nil),             // 50: banyandb.database.v1.GroupRegistryServiceUpdateRequest
-	(*GroupRegistryServiceUpdateResponse)(nil),            // 51: banyandb.database.v1.GroupRegistryServiceUpdateResponse
-	(*GroupRegistryServiceDeleteRequest)(nil),             // 52: banyandb.database.v1.GroupRegistryServiceDeleteRequest
-	(*GroupRegistryServiceDeleteResponse)(nil),            // 53: banyandb.database.v1.GroupRegistryServiceDeleteResponse
-	(*GroupRegistryServiceGetRequest)(nil),                // 54: banyandb.database.v1.GroupRegistryServiceGetRequest
-	(*GroupRegistryServiceGetResponse)(nil),               // 55: banyandb.database.v1.GroupRegistryServiceGetResponse
-	(*GroupRegistryServiceListRequest)(nil),               // 56: banyandb.database.v1.GroupRegistryServiceListRequest
-	(*GroupRegistryServiceListResponse)(nil),              // 57: banyandb.database.v1.GroupRegistryServiceListResponse
-	(*GroupRegistryServiceExistRequest)(nil),              // 58: banyandb.database.v1.GroupRegistryServiceExistRequest
-	(*GroupRegistryServiceExistResponse)(nil),             // 59: banyandb.database.v1.GroupRegistryServiceExistResponse
-	(*TopNAggregationRegistryServiceCreateRequest)(nil),   // 60: banyandb.database.v1.TopNAggregationRegistryServiceCreateRequest
-	(*TopNAggregationRegistryServiceCreateResponse)(nil),  // 61: banyandb.database.v1.TopNAggregationRegistryServiceCreateResponse
-	(*TopNAggregationRegistryServiceUpdateRequest)(nil),   // 62: banyandb.database.v1.TopNAggregationRegistryServiceUpdateRequest
-	(*TopNAggregationRegistryServiceUpdateResponse)(nil),  // 63: banyandb.database.v1.TopNAggregationRegistryServiceUpdateResponse
-	(*TopNAggregationRegistryServiceDeleteRequest)(nil),   // 64: banyandb.database.v1.TopNAggregationRegistryServiceDeleteRequest
-	(*TopNAggregationRegistryServiceDeleteResponse)(nil),  // 65: banyandb.database.v1.TopNAggregationRegistryServiceDeleteResponse
-	(*TopNAggregationRegistryServiceGetRequest)(nil),      // 66: banyandb.database.v1.TopNAggregationRegistryServiceGetRequest
-	(*TopNAggregationRegistryServiceGetResponse)(nil),     // 67: banyandb.database.v1.TopNAggregationRegistryServiceGetResponse
-	(*TopNAggregationRegistryServiceListRequest)(nil),     // 68: banyandb.database.v1.TopNAggregationRegistryServiceListRequest
-	(*TopNAggregationRegistryServiceListResponse)(nil),    // 69: banyandb.database.v1.TopNAggregationRegistryServiceListResponse
-	(*TopNAggregationRegistryServiceExistRequest)(nil),    // 70: banyandb.database.v1.TopNAggregationRegistryServiceExistRequest
-	(*TopNAggregationRegistryServiceExistResponse)(nil),   // 71: banyandb.database.v1.TopNAggregationRegistryServiceExistResponse
-	(*Stream)(nil),           // 72: banyandb.database.v1.Stream
-	(*v1.Metadata)(nil),      // 73: banyandb.common.v1.Metadata
-	(*IndexRuleBinding)(nil), // 74: banyandb.database.v1.IndexRuleBinding
-	(*IndexRule)(nil),        // 75: banyandb.database.v1.IndexRule
-	(*Measure)(nil),          // 76: banyandb.database.v1.Measure
-	(*v1.Group)(nil),         // 77: banyandb.common.v1.Group
-	(*TopNAggregation)(nil),  // 78: banyandb.database.v1.TopNAggregation
-}
-var file_banyandb_database_v1_rpc_proto_depIdxs = []int32{
-	72, // 0: banyandb.database.v1.StreamRegistryServiceCreateRequest.stream:type_name -> banyandb.database.v1.Stream
-	72, // 1: banyandb.database.v1.StreamRegistryServiceUpdateRequest.stream:type_name -> banyandb.database.v1.Stream
-	73, // 2: banyandb.database.v1.StreamRegistryServiceDeleteRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	73, // 3: banyandb.database.v1.StreamRegistryServiceGetRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	72, // 4: banyandb.database.v1.StreamRegistryServiceGetResponse.stream:type_name -> banyandb.database.v1.Stream
-	73, // 5: banyandb.database.v1.StreamRegistryServiceExistRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	72, // 6: banyandb.database.v1.StreamRegistryServiceListResponse.stream:type_name -> banyandb.database.v1.Stream
-	74, // 7: banyandb.database.v1.IndexRuleBindingRegistryServiceCreateRequest.index_rule_binding:type_name -> banyandb.database.v1.IndexRuleBinding
-	74, // 8: banyandb.database.v1.IndexRuleBindingRegistryServiceUpdateRequest.index_rule_binding:type_name -> banyandb.database.v1.IndexRuleBinding
-	73, // 9: banyandb.database.v1.IndexRuleBindingRegistryServiceDeleteRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	73, // 10: banyandb.database.v1.IndexRuleBindingRegistryServiceGetRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	74, // 11: banyandb.database.v1.IndexRuleBindingRegistryServiceGetResponse.index_rule_binding:type_name -> banyandb.database.v1.IndexRuleBinding
-	74, // 12: banyandb.database.v1.IndexRuleBindingRegistryServiceListResponse.index_rule_binding:type_name -> banyandb.database.v1.IndexRuleBinding
-	73, // 13: banyandb.database.v1.IndexRuleBindingRegistryServiceExistRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	75, // 14: banyandb.database.v1.IndexRuleRegistryServiceCreateRequest.index_rule:type_name -> banyandb.database.v1.IndexRule
-	75, // 15: banyandb.database.v1.IndexRuleRegistryServiceUpdateRequest.index_rule:type_name -> banyandb.database.v1.IndexRule
-	73, // 16: banyandb.database.v1.IndexRuleRegistryServiceDeleteRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	73, // 17: banyandb.database.v1.IndexRuleRegistryServiceGetRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	75, // 18: banyandb.database.v1.IndexRuleRegistryServiceGetResponse.index_rule:type_name -> banyandb.database.v1.IndexRule
-	75, // 19: banyandb.database.v1.IndexRuleRegistryServiceListResponse.index_rule:type_name -> banyandb.database.v1.IndexRule
-	73, // 20: banyandb.database.v1.IndexRuleRegistryServiceExistRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	76, // 21: banyandb.database.v1.MeasureRegistryServiceCreateRequest.measure:type_name -> banyandb.database.v1.Measure
-	76, // 22: banyandb.database.v1.MeasureRegistryServiceUpdateRequest.measure:type_name -> banyandb.database.v1.Measure
-	73, // 23: banyandb.database.v1.MeasureRegistryServiceDeleteRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	73, // 24: banyandb.database.v1.MeasureRegistryServiceGetRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	76, // 25: banyandb.database.v1.MeasureRegistryServiceGetResponse.measure:type_name -> banyandb.database.v1.Measure
-	76, // 26: banyandb.database.v1.MeasureRegistryServiceListResponse.measure:type_name -> banyandb.database.v1.Measure
-	73, // 27: banyandb.database.v1.MeasureRegistryServiceExistRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	77, // 28: banyandb.database.v1.GroupRegistryServiceCreateRequest.group:type_name -> banyandb.common.v1.Group
-	77, // 29: banyandb.database.v1.GroupRegistryServiceUpdateRequest.group:type_name -> banyandb.common.v1.Group
-	77, // 30: banyandb.database.v1.GroupRegistryServiceGetResponse.group:type_name -> banyandb.common.v1.Group
-	77, // 31: banyandb.database.v1.GroupRegistryServiceListResponse.group:type_name -> banyandb.common.v1.Group
-	78, // 32: banyandb.database.v1.TopNAggregationRegistryServiceCreateRequest.top_n_aggregation:type_name -> banyandb.database.v1.TopNAggregation
-	78, // 33: banyandb.database.v1.TopNAggregationRegistryServiceUpdateRequest.top_n_aggregation:type_name -> banyandb.database.v1.TopNAggregation
-	73, // 34: banyandb.database.v1.TopNAggregationRegistryServiceDeleteRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	73, // 35: banyandb.database.v1.TopNAggregationRegistryServiceGetRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	78, // 36: banyandb.database.v1.TopNAggregationRegistryServiceGetResponse.top_n_aggregation:type_name -> banyandb.database.v1.TopNAggregation
-	78, // 37: banyandb.database.v1.TopNAggregationRegistryServiceListResponse.top_n_aggregation:type_name -> banyandb.database.v1.TopNAggregation
-	73, // 38: banyandb.database.v1.TopNAggregationRegistryServiceExistRequest.metadata:type_name -> banyandb.common.v1.Metadata
-	0,  // 39: banyandb.database.v1.StreamRegistryService.Create:input_type -> banyandb.database.v1.StreamRegistryServiceCreateRequest
-	2,  // 40: banyandb.database.v1.StreamRegistryService.Update:input_type -> banyandb.database.v1.StreamRegistryServiceUpdateRequest
-	4,  // 41: banyandb.database.v1.StreamRegistryService.Delete:input_type -> banyandb.database.v1.StreamRegistryServiceDeleteRequest
-	6,  // 42: banyandb.database.v1.StreamRegistryService.Get:input_type -> banyandb.database.v1.StreamRegistryServiceGetRequest
-	10, // 43: banyandb.database.v1.StreamRegistryService.List:input_type -> banyandb.database.v1.StreamRegistryServiceListRequest
-	8,  // 44: banyandb.database.v1.StreamRegistryService.Exist:input_type -> banyandb.database.v1.StreamRegistryServiceExistRequest
-	12, // 45: banyandb.database.v1.IndexRuleBindingRegistryService.Create:input_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceCreateRequest
-	14, // 46: banyandb.database.v1.IndexRuleBindingRegistryService.Update:input_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceUpdateRequest
-	16, // 47: banyandb.database.v1.IndexRuleBindingRegistryService.Delete:input_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceDeleteRequest
-	18, // 48: banyandb.database.v1.IndexRuleBindingRegistryService.Get:input_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceGetRequest
-	20, // 49: banyandb.database.v1.IndexRuleBindingRegistryService.List:input_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceListRequest
-	22, // 50: banyandb.database.v1.IndexRuleBindingRegistryService.Exist:input_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceExistRequest
-	24, // 51: banyandb.database.v1.IndexRuleRegistryService.Create:input_type -> banyandb.database.v1.IndexRuleRegistryServiceCreateRequest
-	26, // 52: banyandb.database.v1.IndexRuleRegistryService.Update:input_type -> banyandb.database.v1.IndexRuleRegistryServiceUpdateRequest
-	28, // 53: banyandb.database.v1.IndexRuleRegistryService.Delete:input_type -> banyandb.database.v1.IndexRuleRegistryServiceDeleteRequest
-	30, // 54: banyandb.database.v1.IndexRuleRegistryService.Get:input_type -> banyandb.database.v1.IndexRuleRegistryServiceGetRequest
-	32, // 55: banyandb.database.v1.IndexRuleRegistryService.List:input_type -> banyandb.database.v1.IndexRuleRegistryServiceListRequest
-	34, // 56: banyandb.database.v1.IndexRuleRegistryService.Exist:input_type -> banyandb.database.v1.IndexRuleRegistryServiceExistRequest
-	36, // 57: banyandb.database.v1.MeasureRegistryService.Create:input_type -> banyandb.database.v1.MeasureRegistryServiceCreateRequest
-	38, // 58: banyandb.database.v1.MeasureRegistryService.Update:input_type -> banyandb.database.v1.MeasureRegistryServiceUpdateRequest
-	40, // 59: banyandb.database.v1.MeasureRegistryService.Delete:input_type -> banyandb.database.v1.MeasureRegistryServiceDeleteRequest
-	42, // 60: banyandb.database.v1.MeasureRegistryService.Get:input_type -> banyandb.database.v1.MeasureRegistryServiceGetRequest
-	44, // 61: banyandb.database.v1.MeasureRegistryService.List:input_type -> banyandb.database.v1.MeasureRegistryServiceListRequest
-	46, // 62: banyandb.database.v1.MeasureRegistryService.Exist:input_type -> banyandb.database.v1.MeasureRegistryServiceExistRequest
-	48, // 63: banyandb.database.v1.GroupRegistryService.Create:input_type -> banyandb.database.v1.GroupRegistryServiceCreateRequest
-	50, // 64: banyandb.database.v1.GroupRegistryService.Update:input_type -> banyandb.database.v1.GroupRegistryServiceUpdateRequest
-	52, // 65: banyandb.database.v1.GroupRegistryService.Delete:input_type -> banyandb.database.v1.GroupRegistryServiceDeleteRequest
-	54, // 66: banyandb.database.v1.GroupRegistryService.Get:input_type -> banyandb.database.v1.GroupRegistryServiceGetRequest
-	56, // 67: banyandb.database.v1.GroupRegistryService.List:input_type -> banyandb.database.v1.GroupRegistryServiceListRequest
-	58, // 68: banyandb.database.v1.GroupRegistryService.Exist:input_type -> banyandb.database.v1.GroupRegistryServiceExistRequest
-	60, // 69: banyandb.database.v1.TopNAggregationRegistryService.Create:input_type -> banyandb.database.v1.TopNAggregationRegistryServiceCreateRequest
-	62, // 70: banyandb.database.v1.TopNAggregationRegistryService.Update:input_type -> banyandb.database.v1.TopNAggregationRegistryServiceUpdateRequest
-	64, // 71: banyandb.database.v1.TopNAggregationRegistryService.Delete:input_type -> banyandb.database.v1.TopNAggregationRegistryServiceDeleteRequest
-	66, // 72: banyandb.database.v1.TopNAggregationRegistryService.Get:input_type -> banyandb.database.v1.TopNAggregationRegistryServiceGetRequest
-	68, // 73: banyandb.database.v1.TopNAggregationRegistryService.List:input_type -> banyandb.database.v1.TopNAggregationRegistryServiceListRequest
-	70, // 74: banyandb.database.v1.TopNAggregationRegistryService.Exist:input_type -> banyandb.database.v1.TopNAggregationRegistryServiceExistRequest
-	1,  // 75: banyandb.database.v1.StreamRegistryService.Create:output_type -> banyandb.database.v1.StreamRegistryServiceCreateResponse
-	3,  // 76: banyandb.database.v1.StreamRegistryService.Update:output_type -> banyandb.database.v1.StreamRegistryServiceUpdateResponse
-	5,  // 77: banyandb.database.v1.StreamRegistryService.Delete:output_type -> banyandb.database.v1.StreamRegistryServiceDeleteResponse
-	7,  // 78: banyandb.database.v1.StreamRegistryService.Get:output_type -> banyandb.database.v1.StreamRegistryServiceGetResponse
-	11, // 79: banyandb.database.v1.StreamRegistryService.List:output_type -> banyandb.database.v1.StreamRegistryServiceListResponse
-	9,  // 80: banyandb.database.v1.StreamRegistryService.Exist:output_type -> banyandb.database.v1.StreamRegistryServiceExistResponse
-	13, // 81: banyandb.database.v1.IndexRuleBindingRegistryService.Create:output_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceCreateResponse
-	15, // 82: banyandb.database.v1.IndexRuleBindingRegistryService.Update:output_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceUpdateResponse
-	17, // 83: banyandb.database.v1.IndexRuleBindingRegistryService.Delete:output_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceDeleteResponse
-	19, // 84: banyandb.database.v1.IndexRuleBindingRegistryService.Get:output_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceGetResponse
-	21, // 85: banyandb.database.v1.IndexRuleBindingRegistryService.List:output_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceListResponse
-	23, // 86: banyandb.database.v1.IndexRuleBindingRegistryService.Exist:output_type -> banyandb.database.v1.IndexRuleBindingRegistryServiceExistResponse
-	25, // 87: banyandb.database.v1.IndexRuleRegistryService.Create:output_type -> banyandb.database.v1.IndexRuleRegistryServiceCreateResponse
-	27, // 88: banyandb.database.v1.IndexRuleRegistryService.Update:output_type -> banyandb.database.v1.IndexRuleRegistryServiceUpdateResponse
-	29, // 89: banyandb.database.v1.IndexRuleRegistryService.Delete:output_type -> banyandb.database.v1.IndexRuleRegistryServiceDeleteResponse
-	31, // 90: banyandb.database.v1.IndexRuleRegistryService.Get:output_type -> banyandb.database.v1.IndexRuleRegistryServiceGetResponse
-	33, // 91: banyandb.database.v1.IndexRuleRegistryService.List:output_type -> banyandb.database.v1.IndexRuleRegistryServiceListResponse
-	35, // 92: banyandb.database.v1.IndexRuleRegistryService.Exist:output_type -> banyandb.database.v1.IndexRuleRegistryServiceExistResponse
-	37, // 93: banyandb.database.v1.MeasureRegistryService.Create:output_type -> banyandb.database.v1.MeasureRegistryServiceCreateResponse
-	39, // 94: banyandb.database.v1.MeasureRegistryService.Update:output_type -> banyandb.database.v1.MeasureRegistryServiceUpdateResponse
-	41, // 95: banyandb.database.v1.MeasureRegistryService.Delete:output_type -> banyandb.database.v1.MeasureRegistryServiceDeleteResponse
-	43, // 96: banyandb.database.v1.MeasureRegistryService.Get:output_type -> banyandb.database.v1.MeasureRegistryServiceGetResponse
-	45, // 97: banyandb.database.v1.MeasureRegistryService.List:output_type -> banyandb.database.v1.MeasureRegistryServiceListResponse
-	47, // 98: banyandb.database.v1.MeasureRegistryService.Exist:output_type -> banyandb.database.v1.MeasureRegistryServiceExistResponse
-	49, // 99: banyandb.database.v1.GroupRegistryService.Create:output_type -> banyandb.database.v1.GroupRegistryServiceCreateResponse
-	51, // 100: banyandb.database.v1.GroupRegistryService.Update:output_type -> banyandb.database.v1.GroupRegistryServiceUpdateResponse
-	53, // 101: banyandb.database.v1.GroupRegistryService.Delete:output_type -> banyandb.database.v1.GroupRegistryServiceDeleteResponse
-	55, // 102: banyandb.database.v1.GroupRegistryService.Get:output_type -> banyandb.database.v1.GroupRegistryServiceGetResponse
-	57, // 103: banyandb.database.v1.GroupRegistryService.List:output_type -> banyandb.database.v1.GroupRegistryServiceListResponse
-	59, // 104: banyandb.database.v1.GroupRegistryService.Exist:output_type -> banyandb.database.v1.GroupRegistryServiceExistResponse
-	61, // 105: banyandb.database.v1.TopNAggregationRegistryService.Create:output_type -> banyandb.database.v1.TopNAggregationRegistryServiceCreateResponse
-	63, // 106: banyandb.database.v1.TopNAggregationRegistryService.Update:output_type -> banyandb.database.v1.TopNAggregationRegistryServiceUpdateResponse
-	65, // 107: banyandb.database.v1.TopNAggregationRegistryService.Delete:output_type -> banyandb.database.v1.TopNAggregationRegistryServiceDeleteResponse
-	67, // 108: banyandb.database.v1.TopNAggregationRegistryService.Get:output_type -> banyandb.database.v1.TopNAggregationRegistryServiceGetResponse
-	69, // 109: banyandb.database.v1.TopNAggregationRegistryService.List:output_type -> banyandb.database.v1.TopNAggregationRegistryServiceListResponse
-	71, // 110: banyandb.database.v1.TopNAggregationRegistryService.Exist:output_type -> banyandb.database.v1.TopNAggregationRegistryServiceExistResponse
-	75, // [75:111] is the sub-list for method output_type
-	39, // [39:75] is the sub-list for method input_type
-	39, // [39:39] is the sub-list for extension type_name
-	39, // [39:39] is the sub-list for extension extendee
-	0,  // [0:39] is the sub-list for field type_name
-}
-
-func init() { file_banyandb_database_v1_rpc_proto_init() }
-func file_banyandb_database_v1_rpc_proto_init() {
-	if File_banyandb_database_v1_rpc_proto != nil {
-		return
-	}
-	file_banyandb_database_v1_schema_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_banyandb_database_v1_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceCreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceCreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceUpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceUpdateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceDeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceDeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceGetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceGetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceExistRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceExistResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StreamRegistryServiceListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceCreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceCreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceUpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceUpdateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceDeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceDeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceGetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceGetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceExistRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleBindingRegistryServiceExistResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceCreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceCreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceUpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceUpdateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceDeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceDeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceGetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceGetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceExistRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IndexRuleRegistryServiceExistResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceCreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceCreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceUpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceUpdateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceDeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceDeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceGetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceGetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceExistRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MeasureRegistryServiceExistResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceCreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceCreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceUpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceUpdateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceDeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceDeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceGetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceGetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceExistRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GroupRegistryServiceExistResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceCreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceCreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceUpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceUpdateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceDeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceDeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceGetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceGetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceExistRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_banyandb_database_v1_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TopNAggregationRegistryServiceExistResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_banyandb_database_v1_rpc_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   72,
-			NumExtensions: 0,
-			NumServices:   6,
-		},
-		GoTypes:           file_banyandb_database_v1_rpc_proto_goTypes,
-		DependencyIndexes: file_banyandb_database_v1_rpc_proto_depIdxs,
-		MessageInfos:      file_banyandb_database_v1_rpc_proto_msgTypes,
-	}.Build()
-	File_banyandb_database_v1_rpc_proto = out.File
-	file_banyandb_database_v1_rpc_proto_rawDesc = nil
-	file_banyandb_database_v1_rpc_proto_goTypes = nil
-	file_banyandb_database_v1_rpc_proto_depIdxs = nil
-}
diff --git a/api/proto/banyandb/database/v1/rpc.pb.gw.go b/api/proto/banyandb/database/v1/rpc.pb.gw.go
deleted file mode 100644
index 8a229e8..0000000
--- a/api/proto/banyandb/database/v1/rpc.pb.gw.go
+++ /dev/null
@@ -1,3167 +0,0 @@
-// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
-// source: banyandb/database/v1/rpc.proto
-
-/*
-Package v1 is a reverse proxy.
-
-It translates gRPC into RESTful JSON APIs.
-*/
-package v1
-
-import (
-	"context"
-	"io"
-	"net/http"
-
-	"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
-	"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/grpclog"
-	"google.golang.org/grpc/metadata"
-	"google.golang.org/grpc/status"
-	"google.golang.org/protobuf/proto"
-)
-
-// Suppress "imported and not used" errors
-var _ codes.Code
-var _ io.Reader
-var _ status.Status
-var _ = runtime.String
-var _ = utilities.NewDoubleArray
-var _ = metadata.Join
-
-func request_StreamRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, client StreamRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Create(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_StreamRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, server StreamRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Create(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_StreamRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, client StreamRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceUpdateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["stream.metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "stream.metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "stream.metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "stream.metadata.group", err)
-	}
-
-	val, ok = pathParams["stream.metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "stream.metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "stream.metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "stream.metadata.name", err)
-	}
-
-	msg, err := client.Update(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_StreamRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, server StreamRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceUpdateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["stream.metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "stream.metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "stream.metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "stream.metadata.group", err)
-	}
-
-	val, ok = pathParams["stream.metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "stream.metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "stream.metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "stream.metadata.name", err)
-	}
-
-	msg, err := server.Update(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_StreamRegistryService_Delete_0 = &utilities.DoubleArray{Encoding: map[string]int{"metadata": 0, "group": 1, "name": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
-)
-
-func request_StreamRegistryService_Delete_0(ctx context.Context, marshaler runtime.Marshaler, client StreamRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceDeleteRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamRegistryService_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Delete(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_StreamRegistryService_Delete_0(ctx context.Context, marshaler runtime.Marshaler, server StreamRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceDeleteRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamRegistryService_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Delete(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_StreamRegistryService_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{"metadata": 0, "group": 1, "name": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
-)
-
-func request_StreamRegistryService_Get_0(ctx context.Context, marshaler runtime.Marshaler, client StreamRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceGetRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamRegistryService_Get_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Get(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_StreamRegistryService_Get_0(ctx context.Context, marshaler runtime.Marshaler, server StreamRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceGetRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamRegistryService_Get_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Get(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_StreamRegistryService_List_0(ctx context.Context, marshaler runtime.Marshaler, client StreamRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "group")
-	}
-
-	protoReq.Group, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "group", err)
-	}
-
-	msg, err := client.List(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_StreamRegistryService_List_0(ctx context.Context, marshaler runtime.Marshaler, server StreamRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq StreamRegistryServiceListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "group")
-	}
-
-	protoReq.Group, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "group", err)
-	}
-
-	msg, err := server.List(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_IndexRuleBindingRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleBindingRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Create(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleBindingRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleBindingRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Create(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_IndexRuleBindingRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleBindingRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceUpdateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["index_rule_binding.metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule_binding.metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule_binding.metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule_binding.metadata.group", err)
-	}
-
-	val, ok = pathParams["index_rule_binding.metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule_binding.metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule_binding.metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule_binding.metadata.name", err)
-	}
-
-	msg, err := client.Update(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleBindingRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleBindingRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceUpdateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["index_rule_binding.metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule_binding.metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule_binding.metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule_binding.metadata.group", err)
-	}
-
-	val, ok = pathParams["index_rule_binding.metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule_binding.metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule_binding.metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule_binding.metadata.name", err)
-	}
-
-	msg, err := server.Update(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_IndexRuleBindingRegistryService_Delete_0 = &utilities.DoubleArray{Encoding: map[string]int{"metadata": 0, "group": 1, "name": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
-)
-
-func request_IndexRuleBindingRegistryService_Delete_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleBindingRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceDeleteRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleBindingRegistryService_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Delete(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleBindingRegistryService_Delete_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleBindingRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceDeleteRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleBindingRegistryService_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Delete(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_IndexRuleBindingRegistryService_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{"metadata": 0, "group": 1, "name": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
-)
-
-func request_IndexRuleBindingRegistryService_Get_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleBindingRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceGetRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleBindingRegistryService_Get_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Get(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleBindingRegistryService_Get_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleBindingRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceGetRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleBindingRegistryService_Get_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Get(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_IndexRuleBindingRegistryService_List_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleBindingRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "group")
-	}
-
-	protoReq.Group, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "group", err)
-	}
-
-	msg, err := client.List(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleBindingRegistryService_List_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleBindingRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleBindingRegistryServiceListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "group")
-	}
-
-	protoReq.Group, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "group", err)
-	}
-
-	msg, err := server.List(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_IndexRuleRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Create(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Create(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_IndexRuleRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceUpdateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["index_rule.metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule.metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule.metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule.metadata.group", err)
-	}
-
-	val, ok = pathParams["index_rule.metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule.metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule.metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule.metadata.name", err)
-	}
-
-	msg, err := client.Update(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceUpdateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["index_rule.metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule.metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule.metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule.metadata.group", err)
-	}
-
-	val, ok = pathParams["index_rule.metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_rule.metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "index_rule.metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_rule.metadata.name", err)
-	}
-
-	msg, err := server.Update(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_IndexRuleRegistryService_Delete_0 = &utilities.DoubleArray{Encoding: map[string]int{"metadata": 0, "group": 1, "name": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
-)
-
-func request_IndexRuleRegistryService_Delete_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceDeleteRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleRegistryService_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Delete(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleRegistryService_Delete_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceDeleteRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleRegistryService_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Delete(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_IndexRuleRegistryService_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{"metadata": 0, "group": 1, "name": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
-)
-
-func request_IndexRuleRegistryService_Get_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceGetRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleRegistryService_Get_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Get(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleRegistryService_Get_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceGetRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["metadata.group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.group")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.group", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.group", err)
-	}
-
-	val, ok = pathParams["metadata.name"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "metadata.name")
-	}
-
-	err = runtime.PopulateFieldFromPath(&protoReq, "metadata.name", val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "metadata.name", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IndexRuleRegistryService_Get_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Get(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_IndexRuleRegistryService_List_0(ctx context.Context, marshaler runtime.Marshaler, client IndexRuleRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "group")
-	}
-
-	protoReq.Group, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "group", err)
-	}
-
-	msg, err := client.List(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_IndexRuleRegistryService_List_0(ctx context.Context, marshaler runtime.Marshaler, server IndexRuleRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq IndexRuleRegistryServiceListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["group"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "group")
-	}
-
-	protoReq.Group, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "group", err)
-	}
-
-	msg, err := server.List(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_MeasureRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, client MeasureRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq MeasureRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.Create(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_MeasureRegistryService_Create_0(ctx context.Context, marshaler runtime.Marshaler, server MeasureRegistryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq MeasureRegistryServiceCreateRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Create(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_MeasureRegistryService_Update_0(ctx context.Context, marshaler runtime.Marshaler, client MeasureRegistryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq MeasureRegistryServiceUpdateRequest
... 37619 lines suppressed ...