From: =?utf-8?b?T3R0byBLZWvDpGzDpGluZW4=?= <otto@debian.org>
Date: Thu, 21 Aug 2025 13:09:47 -0700
Subject: Fix build with older protobuffer

Patch grpc-gateway dependency to fix build failure:

	# github.com/pingcap/kvproto/pkg/configpb
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:45:44: cannot use &protoReq (value of type *GetRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *GetRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:58:44: cannot use &protoReq (value of type *GetRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *GetRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:112:44: cannot use &protoReq (value of type *DeleteRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *DeleteRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:125:44: cannot use &protoReq (value of type *DeleteRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *DeleteRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:304:107: too many arguments in call to runtime.NewPattern
		have (number, []int, []string, string, unknown type)
		want (int, []int, []string, string)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:304:115: undefined: runtime.AssumeColonVerbOpt
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:306:110: too many arguments in call to runtime.NewPattern
		have (number, []int, []string, string, unknown type)
		want (int, []int, []string, string)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:306:118: undefined: runtime.AssumeColonVerbOpt
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:308:110: too many arguments in call to runtime.NewPattern
		have (number, []int, []string, string, unknown type)
		want (int, []int, []string, string)
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:308:118: undefined: runtime.AssumeColonVerbOpt
	src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:125:44: too m

This can be dropped when upgrading to newer protobuffer libraries.

Forwarded: not-needed
---
 include/rustproto.proto        |    8 +-
 pkg/configpb/configpb.pb.go    | 1935 +++++++++++++++++++++++-----------------
 pkg/configpb/configpb.pb.gw.go |  317 -------
 proto/configpb.proto           |   24 +-
 4 files changed, 1140 insertions(+), 1144 deletions(-)
 delete mode 100644 pkg/configpb/configpb.pb.gw.go

diff --git a/include/rustproto.proto b/include/rustproto.proto
index 83e76fd..f53b38a 100644
--- a/include/rustproto.proto
+++ b/include/rustproto.proto
@@ -7,6 +7,8 @@ import "google/protobuf/descriptor.proto";
 
 package rustproto;
 
+option go_package = "github.com/pingcap/kvproto/pkg/rustproto";
+
 extend google.protobuf.FileOptions {
     // When true, oneof field is generated public
     optional bool expose_oneof_all = 17001;
@@ -44,4 +46,8 @@ extend google.protobuf.FieldOptions {
     optional bool carllerche_bytes_for_bytes_field = 17011;
     // Use `bytes::Bytes` for `string` fields
     optional bool carllerche_bytes_for_string_field = 17012;
-}
\ No newline at end of file
+}
+
+// Dummy message to force file generation.
+message RustProtoDummy {
+}
diff --git a/pkg/configpb/configpb.pb.go b/pkg/configpb/configpb.pb.go
index 6ac4623..3c67fc3 100644
--- a/pkg/configpb/configpb.pb.go
+++ b/pkg/configpb/configpb.pb.go
@@ -1,22 +1,19 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: configpb.proto
+// source: proto/configpb.proto
 
 package configpb
 
 import (
-	"fmt"
-	"io"
-	"math"
-
-	proto "github.com/golang/protobuf/proto"
-
+	context "context"
+	fmt "fmt"
 	_ "github.com/gogo/protobuf/gogoproto"
-
-	_ "google.golang.org/genproto/googleapis/api/annotations"
-
-	context "golang.org/x/net/context"
-
+	proto "github.com/gogo/protobuf/proto"
 	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	io "io"
+	math "math"
+	math_bits "math/bits"
 )
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -28,7 +25,7 @@ var _ = math.Inf
 // is compatible with the proto package it is being compiled against.
 // A compilation error at this line likely means your copy of the
 // proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
 
 type StatusCode int32
 
@@ -49,6 +46,7 @@ var StatusCode_name = map[int32]string{
 	4: "COMPONENT_NOT_FOUND",
 	5: "COMPONENT_ID_NOT_FOUND",
 }
+
 var StatusCode_value = map[string]int32{
 	"UNKNOWN":                0,
 	"OK":                     1,
@@ -61,8 +59,9 @@ var StatusCode_value = map[string]int32{
 func (x StatusCode) String() string {
 	return proto.EnumName(StatusCode_name, int32(x))
 }
+
 func (StatusCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{0}
+	return fileDescriptor_f711cc98cf4fb76b, []int{0}
 }
 
 type Status struct {
@@ -77,7 +76,7 @@ func (m *Status) Reset()         { *m = Status{} }
 func (m *Status) String() string { return proto.CompactTextString(m) }
 func (*Status) ProtoMessage()    {}
 func (*Status) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{0}
+	return fileDescriptor_f711cc98cf4fb76b, []int{0}
 }
 func (m *Status) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -87,15 +86,15 @@ func (m *Status) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_Status.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *Status) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Status.Merge(dst, src)
+func (m *Status) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Status.Merge(m, src)
 }
 func (m *Status) XXX_Size() int {
 	return m.Size()
@@ -138,7 +137,7 @@ func (m *Version) Reset()         { *m = Version{} }
 func (m *Version) String() string { return proto.CompactTextString(m) }
 func (*Version) ProtoMessage()    {}
 func (*Version) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{1}
+	return fileDescriptor_f711cc98cf4fb76b, []int{1}
 }
 func (m *Version) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -148,15 +147,15 @@ func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_Version.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *Version) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Version.Merge(dst, src)
+func (m *Version) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Version.Merge(m, src)
 }
 func (m *Version) XXX_Size() int {
 	return m.Size()
@@ -192,7 +191,7 @@ func (m *Local) Reset()         { *m = Local{} }
 func (m *Local) String() string { return proto.CompactTextString(m) }
 func (*Local) ProtoMessage()    {}
 func (*Local) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{2}
+	return fileDescriptor_f711cc98cf4fb76b, []int{2}
 }
 func (m *Local) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -202,15 +201,15 @@ func (m *Local) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_Local.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *Local) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Local.Merge(dst, src)
+func (m *Local) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Local.Merge(m, src)
 }
 func (m *Local) XXX_Size() int {
 	return m.Size()
@@ -239,7 +238,7 @@ func (m *Global) Reset()         { *m = Global{} }
 func (m *Global) String() string { return proto.CompactTextString(m) }
 func (*Global) ProtoMessage()    {}
 func (*Global) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{3}
+	return fileDescriptor_f711cc98cf4fb76b, []int{3}
 }
 func (m *Global) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -249,15 +248,15 @@ func (m *Global) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_Global.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *Global) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Global.Merge(dst, src)
+func (m *Global) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Global.Merge(m, src)
 }
 func (m *Global) XXX_Size() int {
 	return m.Size()
@@ -277,6 +276,7 @@ func (m *Global) GetComponent() string {
 
 type ConfigKind struct {
 	// Types that are valid to be assigned to Kind:
+	//
 	//	*ConfigKind_Local
 	//	*ConfigKind_Global
 	Kind                 isConfigKind_Kind `protobuf_oneof:"kind"`
@@ -289,7 +289,7 @@ func (m *ConfigKind) Reset()         { *m = ConfigKind{} }
 func (m *ConfigKind) String() string { return proto.CompactTextString(m) }
 func (*ConfigKind) ProtoMessage()    {}
 func (*ConfigKind) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{4}
+	return fileDescriptor_f711cc98cf4fb76b, []int{4}
 }
 func (m *ConfigKind) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -299,15 +299,15 @@ func (m *ConfigKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_ConfigKind.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *ConfigKind) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ConfigKind.Merge(dst, src)
+func (m *ConfigKind) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ConfigKind.Merge(m, src)
 }
 func (m *ConfigKind) XXX_Size() int {
 	return m.Size()
@@ -325,10 +325,10 @@ type isConfigKind_Kind interface {
 }
 
 type ConfigKind_Local struct {
-	Local *Local `protobuf:"bytes,1,opt,name=local,oneof"`
+	Local *Local `protobuf:"bytes,1,opt,name=local,proto3,oneof" json:"local,omitempty"`
 }
 type ConfigKind_Global struct {
-	Global *Global `protobuf:"bytes,2,opt,name=global,oneof"`
+	Global *Global `protobuf:"bytes,2,opt,name=global,proto3,oneof" json:"global,omitempty"`
 }
 
 func (*ConfigKind_Local) isConfigKind_Kind()  {}
@@ -355,80 +355,14 @@ func (m *ConfigKind) GetGlobal() *Global {
 	return nil
 }
 
-// XXX_OneofFuncs is for the internal use of the proto package.
-func (*ConfigKind) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
-	return _ConfigKind_OneofMarshaler, _ConfigKind_OneofUnmarshaler, _ConfigKind_OneofSizer, []interface{}{
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*ConfigKind) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
 		(*ConfigKind_Local)(nil),
 		(*ConfigKind_Global)(nil),
 	}
 }
 
-func _ConfigKind_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
-	m := msg.(*ConfigKind)
-	// kind
-	switch x := m.Kind.(type) {
-	case *ConfigKind_Local:
-		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.Local); err != nil {
-			return err
-		}
-	case *ConfigKind_Global:
-		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.Global); err != nil {
-			return err
-		}
-	case nil:
-	default:
-		return fmt.Errorf("ConfigKind.Kind has unexpected type %T", x)
-	}
-	return nil
-}
-
-func _ConfigKind_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
-	m := msg.(*ConfigKind)
-	switch tag {
-	case 1: // kind.local
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(Local)
-		err := b.DecodeMessage(msg)
-		m.Kind = &ConfigKind_Local{msg}
-		return true, err
-	case 2: // kind.global
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(Global)
-		err := b.DecodeMessage(msg)
-		m.Kind = &ConfigKind_Global{msg}
-		return true, err
-	default:
-		return false, nil
-	}
-}
-
-func _ConfigKind_OneofSizer(msg proto.Message) (n int) {
-	m := msg.(*ConfigKind)
-	// kind
-	switch x := m.Kind.(type) {
-	case *ConfigKind_Local:
-		s := proto.Size(x.Local)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case *ConfigKind_Global:
-		s := proto.Size(x.Global)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case nil:
-	default:
-		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
-	}
-	return n
-}
-
 type ConfigEntry struct {
 	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
@@ -441,7 +375,7 @@ func (m *ConfigEntry) Reset()         { *m = ConfigEntry{} }
 func (m *ConfigEntry) String() string { return proto.CompactTextString(m) }
 func (*ConfigEntry) ProtoMessage()    {}
 func (*ConfigEntry) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{5}
+	return fileDescriptor_f711cc98cf4fb76b, []int{5}
 }
 func (m *ConfigEntry) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -451,15 +385,15 @@ func (m *ConfigEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
 		return xxx_messageInfo_ConfigEntry.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *ConfigEntry) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ConfigEntry.Merge(dst, src)
+func (m *ConfigEntry) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ConfigEntry.Merge(m, src)
 }
 func (m *ConfigEntry) XXX_Size() int {
 	return m.Size()
@@ -485,7 +419,7 @@ func (m *ConfigEntry) GetValue() string {
 }
 
 type LocalConfig struct {
-	Version              *Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"`
+	Version              *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
 	Component            string   `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
 	ComponentId          string   `protobuf:"bytes,3,opt,name=component_id,json=componentId,proto3" json:"component_id,omitempty"`
 	Config               string   `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
@@ -498,7 +432,7 @@ func (m *LocalConfig) Reset()         { *m = LocalConfig{} }
 func (m *LocalConfig) String() string { return proto.CompactTextString(m) }
 func (*LocalConfig) ProtoMessage()    {}
 func (*LocalConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{6}
+	return fileDescriptor_f711cc98cf4fb76b, []int{6}
 }
 func (m *LocalConfig) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -508,15 +442,15 @@ func (m *LocalConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
 		return xxx_messageInfo_LocalConfig.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *LocalConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LocalConfig.Merge(dst, src)
+func (m *LocalConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_LocalConfig.Merge(m, src)
 }
 func (m *LocalConfig) XXX_Size() int {
 	return m.Size()
@@ -566,7 +500,7 @@ func (m *Header) Reset()         { *m = Header{} }
 func (m *Header) String() string { return proto.CompactTextString(m) }
 func (*Header) ProtoMessage()    {}
 func (*Header) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{7}
+	return fileDescriptor_f711cc98cf4fb76b, []int{7}
 }
 func (m *Header) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -576,15 +510,15 @@ func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_Header.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *Header) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Header.Merge(dst, src)
+func (m *Header) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Header.Merge(m, src)
 }
 func (m *Header) XXX_Size() int {
 	return m.Size()
@@ -603,8 +537,8 @@ func (m *Header) GetClusterId() uint64 {
 }
 
 type CreateRequest struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Version              *Version `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Version              *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	Component            string   `protobuf:"bytes,3,opt,name=component,proto3" json:"component,omitempty"`
 	ComponentId          string   `protobuf:"bytes,4,opt,name=component_id,json=componentId,proto3" json:"component_id,omitempty"`
 	Config               string   `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"`
@@ -617,7 +551,7 @@ func (m *CreateRequest) Reset()         { *m = CreateRequest{} }
 func (m *CreateRequest) String() string { return proto.CompactTextString(m) }
 func (*CreateRequest) ProtoMessage()    {}
 func (*CreateRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{8}
+	return fileDescriptor_f711cc98cf4fb76b, []int{8}
 }
 func (m *CreateRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -627,15 +561,15 @@ func (m *CreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
 		return xxx_messageInfo_CreateRequest.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *CreateRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CreateRequest.Merge(dst, src)
+func (m *CreateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CreateRequest.Merge(m, src)
 }
 func (m *CreateRequest) XXX_Size() int {
 	return m.Size()
@@ -682,9 +616,9 @@ func (m *CreateRequest) GetConfig() string {
 }
 
 type CreateResponse struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Status               *Status  `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
-	Version              *Version `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Status               *Status  `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	Version              *Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
 	Config               string   `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
@@ -695,7 +629,7 @@ func (m *CreateResponse) Reset()         { *m = CreateResponse{} }
 func (m *CreateResponse) String() string { return proto.CompactTextString(m) }
 func (*CreateResponse) ProtoMessage()    {}
 func (*CreateResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{9}
+	return fileDescriptor_f711cc98cf4fb76b, []int{9}
 }
 func (m *CreateResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -705,15 +639,15 @@ func (m *CreateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
 		return xxx_messageInfo_CreateResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *CreateResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CreateResponse.Merge(dst, src)
+func (m *CreateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CreateResponse.Merge(m, src)
 }
 func (m *CreateResponse) XXX_Size() int {
 	return m.Size()
@@ -753,7 +687,7 @@ func (m *CreateResponse) GetConfig() string {
 }
 
 type GetAllRequest struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -763,7 +697,7 @@ func (m *GetAllRequest) Reset()         { *m = GetAllRequest{} }
 func (m *GetAllRequest) String() string { return proto.CompactTextString(m) }
 func (*GetAllRequest) ProtoMessage()    {}
 func (*GetAllRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{10}
+	return fileDescriptor_f711cc98cf4fb76b, []int{10}
 }
 func (m *GetAllRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -773,15 +707,15 @@ func (m *GetAllRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
 		return xxx_messageInfo_GetAllRequest.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *GetAllRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetAllRequest.Merge(dst, src)
+func (m *GetAllRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetAllRequest.Merge(m, src)
 }
 func (m *GetAllRequest) XXX_Size() int {
 	return m.Size()
@@ -800,9 +734,9 @@ func (m *GetAllRequest) GetHeader() *Header {
 }
 
 type GetAllResponse struct {
-	Header               *Header        `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Status               *Status        `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
-	LocalConfigs         []*LocalConfig `protobuf:"bytes,3,rep,name=local_configs,json=localConfigs" json:"local_configs,omitempty"`
+	Header               *Header        `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Status               *Status        `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	LocalConfigs         []*LocalConfig `protobuf:"bytes,3,rep,name=local_configs,json=localConfigs,proto3" json:"local_configs,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -812,7 +746,7 @@ func (m *GetAllResponse) Reset()         { *m = GetAllResponse{} }
 func (m *GetAllResponse) String() string { return proto.CompactTextString(m) }
 func (*GetAllResponse) ProtoMessage()    {}
 func (*GetAllResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{11}
+	return fileDescriptor_f711cc98cf4fb76b, []int{11}
 }
 func (m *GetAllResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -822,15 +756,15 @@ func (m *GetAllResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
 		return xxx_messageInfo_GetAllResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *GetAllResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetAllResponse.Merge(dst, src)
+func (m *GetAllResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetAllResponse.Merge(m, src)
 }
 func (m *GetAllResponse) XXX_Size() int {
 	return m.Size()
@@ -863,8 +797,8 @@ func (m *GetAllResponse) GetLocalConfigs() []*LocalConfig {
 }
 
 type GetRequest struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Version              *Version `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Version              *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	Component            string   `protobuf:"bytes,3,opt,name=component,proto3" json:"component,omitempty"`
 	ComponentId          string   `protobuf:"bytes,4,opt,name=component_id,json=componentId,proto3" json:"component_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -876,7 +810,7 @@ func (m *GetRequest) Reset()         { *m = GetRequest{} }
 func (m *GetRequest) String() string { return proto.CompactTextString(m) }
 func (*GetRequest) ProtoMessage()    {}
 func (*GetRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{12}
+	return fileDescriptor_f711cc98cf4fb76b, []int{12}
 }
 func (m *GetRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -886,15 +820,15 @@ func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 		return xxx_messageInfo_GetRequest.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *GetRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetRequest.Merge(dst, src)
+func (m *GetRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetRequest.Merge(m, src)
 }
 func (m *GetRequest) XXX_Size() int {
 	return m.Size()
@@ -934,9 +868,9 @@ func (m *GetRequest) GetComponentId() string {
 }
 
 type GetResponse struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Status               *Status  `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
-	Version              *Version `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Status               *Status  `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	Version              *Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
 	Config               string   `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
@@ -947,7 +881,7 @@ func (m *GetResponse) Reset()         { *m = GetResponse{} }
 func (m *GetResponse) String() string { return proto.CompactTextString(m) }
 func (*GetResponse) ProtoMessage()    {}
 func (*GetResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{13}
+	return fileDescriptor_f711cc98cf4fb76b, []int{13}
 }
 func (m *GetResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -957,15 +891,15 @@ func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
 		return xxx_messageInfo_GetResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *GetResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetResponse.Merge(dst, src)
+func (m *GetResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetResponse.Merge(m, src)
 }
 func (m *GetResponse) XXX_Size() int {
 	return m.Size()
@@ -1005,10 +939,10 @@ func (m *GetResponse) GetConfig() string {
 }
 
 type UpdateRequest struct {
-	Header               *Header        `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Version              *Version       `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
-	Kind                 *ConfigKind    `protobuf:"bytes,3,opt,name=kind" json:"kind,omitempty"`
-	Entries              []*ConfigEntry `protobuf:"bytes,4,rep,name=entries" json:"entries,omitempty"`
+	Header               *Header        `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Version              *Version       `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+	Kind                 *ConfigKind    `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"`
+	Entries              []*ConfigEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1018,7 +952,7 @@ func (m *UpdateRequest) Reset()         { *m = UpdateRequest{} }
 func (m *UpdateRequest) String() string { return proto.CompactTextString(m) }
 func (*UpdateRequest) ProtoMessage()    {}
 func (*UpdateRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{14}
+	return fileDescriptor_f711cc98cf4fb76b, []int{14}
 }
 func (m *UpdateRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1028,15 +962,15 @@ func (m *UpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
 		return xxx_messageInfo_UpdateRequest.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *UpdateRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateRequest.Merge(dst, src)
+func (m *UpdateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdateRequest.Merge(m, src)
 }
 func (m *UpdateRequest) XXX_Size() int {
 	return m.Size()
@@ -1076,9 +1010,9 @@ func (m *UpdateRequest) GetEntries() []*ConfigEntry {
 }
 
 type UpdateResponse struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Status               *Status  `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
-	Version              *Version `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Status               *Status  `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	Version              *Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
 	Config               string   `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
@@ -1089,7 +1023,7 @@ func (m *UpdateResponse) Reset()         { *m = UpdateResponse{} }
 func (m *UpdateResponse) String() string { return proto.CompactTextString(m) }
 func (*UpdateResponse) ProtoMessage()    {}
 func (*UpdateResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{15}
+	return fileDescriptor_f711cc98cf4fb76b, []int{15}
 }
 func (m *UpdateResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1099,15 +1033,15 @@ func (m *UpdateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
 		return xxx_messageInfo_UpdateResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *UpdateResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateResponse.Merge(dst, src)
+func (m *UpdateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdateResponse.Merge(m, src)
 }
 func (m *UpdateResponse) XXX_Size() int {
 	return m.Size()
@@ -1147,9 +1081,9 @@ func (m *UpdateResponse) GetConfig() string {
 }
 
 type DeleteRequest struct {
-	Header               *Header     `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Version              *Version    `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
-	Kind                 *ConfigKind `protobuf:"bytes,3,opt,name=kind" json:"kind,omitempty"`
+	Header               *Header     `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Version              *Version    `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+	Kind                 *ConfigKind `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1159,7 +1093,7 @@ func (m *DeleteRequest) Reset()         { *m = DeleteRequest{} }
 func (m *DeleteRequest) String() string { return proto.CompactTextString(m) }
 func (*DeleteRequest) ProtoMessage()    {}
 func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{16}
+	return fileDescriptor_f711cc98cf4fb76b, []int{16}
 }
 func (m *DeleteRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1169,15 +1103,15 @@ func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
 		return xxx_messageInfo_DeleteRequest.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *DeleteRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeleteRequest.Merge(dst, src)
+func (m *DeleteRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeleteRequest.Merge(m, src)
 }
 func (m *DeleteRequest) XXX_Size() int {
 	return m.Size()
@@ -1210,9 +1144,9 @@ func (m *DeleteRequest) GetKind() *ConfigKind {
 }
 
 type DeleteResponse struct {
-	Header               *Header  `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	Status               *Status  `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
-	Version              *Version `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+	Header               *Header  `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Status               *Status  `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	Version              *Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1222,7 +1156,7 @@ func (m *DeleteResponse) Reset()         { *m = DeleteResponse{} }
 func (m *DeleteResponse) String() string { return proto.CompactTextString(m) }
 func (*DeleteResponse) ProtoMessage()    {}
 func (*DeleteResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_configpb_6d0f7689747bcf7d, []int{17}
+	return fileDescriptor_f711cc98cf4fb76b, []int{17}
 }
 func (m *DeleteResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
@@ -1232,15 +1166,15 @@ func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
 		return xxx_messageInfo_DeleteResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
+		n, err := m.MarshalToSizedBuffer(b)
 		if err != nil {
 			return nil, err
 		}
 		return b[:n], nil
 	}
 }
-func (dst *DeleteResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeleteResponse.Merge(dst, src)
+func (m *DeleteResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeleteResponse.Merge(m, src)
 }
 func (m *DeleteResponse) XXX_Size() int {
 	return m.Size()
@@ -1273,6 +1207,7 @@ func (m *DeleteResponse) GetVersion() *Version {
 }
 
 func init() {
+	proto.RegisterEnum("configpb.StatusCode", StatusCode_name, StatusCode_value)
 	proto.RegisterType((*Status)(nil), "configpb.Status")
 	proto.RegisterType((*Version)(nil), "configpb.Version")
 	proto.RegisterType((*Local)(nil), "configpb.Local")
@@ -1291,7 +1226,62 @@ func init() {
 	proto.RegisterType((*UpdateResponse)(nil), "configpb.UpdateResponse")
 	proto.RegisterType((*DeleteRequest)(nil), "configpb.DeleteRequest")
 	proto.RegisterType((*DeleteResponse)(nil), "configpb.DeleteResponse")
-	proto.RegisterEnum("configpb.StatusCode", StatusCode_name, StatusCode_value)
+}
+
+func init() { proto.RegisterFile("proto/configpb.proto", fileDescriptor_f711cc98cf4fb76b) }
+
+var fileDescriptor_f711cc98cf4fb76b = []byte{
+	// 792 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0xdb, 0x46,
+	0x10, 0xd6, 0x4a, 0x14, 0x55, 0x0d, 0x2d, 0x55, 0xde, 0xca, 0xb6, 0x60, 0xb4, 0x86, 0xbb, 0x87,
+	0x5a, 0x70, 0x01, 0x0b, 0x50, 0x5b, 0x18, 0x2d, 0xd0, 0x83, 0x2d, 0xab, 0x92, 0x60, 0x97, 0x0c,
+	0xe8, 0x3f, 0x20, 0x17, 0x81, 0x12, 0x37, 0x34, 0x61, 0x8a, 0x64, 0x44, 0xca, 0x80, 0xdf, 0x22,
+	0x41, 0x5e, 0x20, 0x87, 0x20, 0x40, 0x5e, 0x21, 0x97, 0x20, 0xb7, 0x1c, 0xf3, 0x08, 0x81, 0x9f,
+	0x24, 0xd0, 0x2e, 0x29, 0x2e, 0x25, 0x24, 0x86, 0x0f, 0x06, 0x74, 0xe3, 0xec, 0xcc, 0xb7, 0x33,
+	0xdf, 0xc7, 0x99, 0x21, 0xa1, 0xea, 0x8f, 0xbd, 0xd0, 0x6b, 0x0c, 0x3d, 0xf7, 0x99, 0x6d, 0xf9,
+	0x83, 0x3d, 0x66, 0xe2, 0x1f, 0x62, 0x7b, 0xb3, 0x6a, 0x79, 0x96, 0xc7, 0x63, 0xa6, 0x4f, 0xdc,
+	0x4f, 0x4e, 0x40, 0x3e, 0x0d, 0x8d, 0x70, 0x12, 0xe0, 0x3a, 0x48, 0x43, 0xcf, 0xa4, 0x35, 0xb4,
+	0x8d, 0xea, 0xe5, 0x66, 0x75, 0x6f, 0x76, 0x11, 0xf7, 0xb7, 0x3c, 0x93, 0xea, 0x2c, 0x02, 0xd7,
+	0xa0, 0x30, 0xa2, 0x41, 0x60, 0x58, 0xb4, 0x96, 0xdd, 0x46, 0xf5, 0xa2, 0x1e, 0x9b, 0x64, 0x1f,
+	0x0a, 0x17, 0x74, 0x1c, 0xd8, 0x9e, 0x8b, 0xab, 0x90, 0x77, 0xbc, 0xa1, 0xe1, 0xb0, 0xfb, 0x24,
+	0x9d, 0x1b, 0x78, 0x1d, 0x64, 0xcb, 0xf1, 0x06, 0x86, 0xc3, 0x90, 0x92, 0x1e, 0x59, 0x64, 0x17,
+	0xf2, 0x27, 0x2c, 0xe0, 0x57, 0x58, 0x19, 0x7a, 0x23, 0xdf, 0x73, 0xa9, 0x1b, 0xf6, 0x6d, 0x93,
+	0xa1, 0x8b, 0xba, 0x32, 0x3b, 0xeb, 0x99, 0xe4, 0x37, 0x90, 0x3b, 0x0c, 0x85, 0x7f, 0x86, 0xe2,
+	0xcc, 0x11, 0x45, 0x26, 0x07, 0xc4, 0x06, 0x68, 0x31, 0x0e, 0xc7, 0xb6, 0x6b, 0xe2, 0x1d, 0xb1,
+	0x1e, 0xa5, 0xf9, 0x63, 0xc2, 0x8f, 0x25, 0xee, 0x66, 0xe2, 0x12, 0x77, 0x53, 0x25, 0x2a, 0xcd,
+	0x4a, 0x12, 0xc9, 0xd3, 0x76, 0x33, 0x71, 0xd9, 0x87, 0x32, 0x48, 0xd7, 0xb6, 0x6b, 0x92, 0x7d,
+	0x50, 0x78, 0xaa, 0xb6, 0x1b, 0x8e, 0x6f, 0x31, 0x06, 0xc9, 0x35, 0x46, 0x34, 0x2a, 0x89, 0x3d,
+	0x4f, 0xf5, 0xb8, 0x31, 0x9c, 0x49, 0x2c, 0x19, 0x37, 0xc8, 0x2b, 0x04, 0x0a, 0xcb, 0xcf, 0xe1,
+	0xf8, 0x77, 0x28, 0xdc, 0x70, 0x01, 0xa3, 0x3a, 0x57, 0x93, 0xec, 0x91, 0xb2, 0x7a, 0x1c, 0x91,
+	0xa6, 0x9f, 0x9d, 0xa3, 0xbf, 0xa0, 0x64, 0x6e, 0x41, 0xc9, 0xe9, 0xdb, 0xe0, 0xb7, 0xd7, 0x24,
+	0xe6, 0x8c, 0x2c, 0xb2, 0x03, 0x72, 0x97, 0x1a, 0x26, 0x1d, 0xe3, 0x5f, 0x00, 0x86, 0xce, 0x24,
+	0x08, 0xe9, 0x38, 0x7e, 0x19, 0x92, 0x5e, 0x8c, 0x4e, 0x7a, 0x26, 0xf9, 0x80, 0xa0, 0xd4, 0x1a,
+	0x53, 0x23, 0xa4, 0x3a, 0x7d, 0x3e, 0xa1, 0x41, 0x88, 0xeb, 0x20, 0x5f, 0x31, 0x68, 0x54, 0xbf,
+	0xa0, 0x1e, 0xbf, 0x52, 0x8f, 0xfc, 0x22, 0xd5, 0xec, 0xc3, 0xa8, 0xe6, 0xee, 0xa3, 0x2a, 0x7d,
+	0x8f, 0x6a, 0x3e, 0x45, 0xf5, 0x1d, 0x82, 0x72, 0xcc, 0x20, 0xf0, 0x3d, 0x37, 0xa0, 0x0f, 0xa0,
+	0x50, 0x07, 0x39, 0x60, 0xc3, 0xb1, 0xd8, 0x2a, 0x7c, 0x68, 0xf4, 0xc8, 0x2f, 0x92, 0xcd, 0xdd,
+	0x4b, 0xf6, 0x5b, 0xaf, 0xe5, 0x6f, 0x28, 0x75, 0x68, 0x78, 0xe0, 0x38, 0x0f, 0x16, 0x9b, 0xbc,
+	0x46, 0x50, 0x8e, 0xb1, 0x8f, 0x48, 0xf3, 0x1f, 0x28, 0xb1, 0x21, 0xea, 0xf3, 0x80, 0xa0, 0x96,
+	0xdb, 0xce, 0xd5, 0x95, 0xe6, 0xda, 0xdc, 0xb0, 0xf1, 0x66, 0xd7, 0x57, 0x9c, 0xc4, 0x08, 0xc8,
+	0x1b, 0x04, 0xd0, 0xa1, 0xe1, 0x92, 0x37, 0x12, 0x79, 0x8b, 0x40, 0x61, 0x65, 0x2e, 0x7b, 0xb7,
+	0x7c, 0x44, 0x50, 0x3a, 0xf7, 0xcd, 0xc7, 0x9f, 0xcd, 0x3a, 0x5f, 0x82, 0x51, 0xa9, 0xc2, 0x87,
+	0x23, 0xd9, 0xbe, 0x3a, 0x8b, 0xc0, 0x0d, 0x28, 0x50, 0x37, 0x1c, 0xdb, 0x34, 0xa8, 0x49, 0xf3,
+	0x8d, 0x21, 0xec, 0x4f, 0x3d, 0x8e, 0x62, 0xd3, 0x19, 0x73, 0x58, 0x76, 0xbd, 0x5f, 0x20, 0x28,
+	0x1d, 0x51, 0x87, 0x2e, 0x8f, 0xde, 0xe4, 0x25, 0x82, 0x72, 0x5c, 0xd2, 0x92, 0xc8, 0xb7, 0x7b,
+	0x0b, 0x90, 0xfc, 0x50, 0x60, 0x05, 0x0a, 0xe7, 0xea, 0xb1, 0xaa, 0x5d, 0xaa, 0x95, 0x0c, 0x96,
+	0x21, 0xab, 0x1d, 0x57, 0x10, 0x5e, 0x85, 0xd2, 0xa5, 0xae, 0xa9, 0x9d, 0xfe, 0x45, 0x5b, 0x3f,
+	0xed, 0x69, 0x6a, 0x25, 0x8b, 0xcb, 0x00, 0xaa, 0x76, 0xd6, 0x6f, 0x75, 0x0f, 0xd4, 0x4e, 0xbb,
+	0x92, 0xc3, 0x1b, 0xf0, 0x53, 0x4b, 0xfb, 0xff, 0x89, 0xa6, 0xb6, 0xd5, 0xb3, 0xfe, 0xd4, 0xf3,
+	0x9f, 0x76, 0xae, 0x1e, 0x55, 0x24, 0xbc, 0x09, 0xeb, 0x89, 0xa3, 0x77, 0x24, 0xf8, 0xf2, 0xcd,
+	0xf7, 0x59, 0x90, 0xa3, 0xef, 0xec, 0xbf, 0x20, 0xf3, 0xad, 0x8f, 0x37, 0x04, 0xfd, 0xc4, 0x2f,
+	0xd9, 0x66, 0x6d, 0xd1, 0xc1, 0x35, 0x24, 0x99, 0x29, 0x9c, 0x6f, 0x53, 0x11, 0x9e, 0xda, 0xcd,
+	0x22, 0x3c, 0xbd, 0x78, 0x49, 0x06, 0xff, 0x09, 0xb9, 0x0e, 0x0d, 0x71, 0x35, 0x15, 0x12, 0x03,
+	0xd7, 0xe6, 0x4e, 0xc5, 0xa4, 0x7c, 0x16, 0xc4, 0xa4, 0xa9, 0x09, 0x17, 0x93, 0xa6, 0xc7, 0x86,
+	0xc3, 0x79, 0x2f, 0x88, 0xf0, 0x54, 0xc3, 0x8a, 0xf0, 0x74, 0xdb, 0x90, 0xcc, 0xe1, 0x5f, 0x9f,
+	0xee, 0xb6, 0xd0, 0xe7, 0xbb, 0x2d, 0xf4, 0xe5, 0x6e, 0x0b, 0x3d, 0xdd, 0xb1, 0xec, 0xf0, 0x6a,
+	0x32, 0xd8, 0x1b, 0x7a, 0xa3, 0x86, 0x6f, 0xbb, 0xd6, 0xd0, 0xf0, 0x1b, 0xd7, 0x37, 0xfc, 0xef,
+	0xd2, 0xbf, 0xb6, 0x66, 0x7f, 0xa1, 0x03, 0x99, 0x9d, 0xfd, 0xf1, 0x35, 0x00, 0x00, 0xff, 0xff,
+	0xba, 0xe3, 0xa9, 0x62, 0x9e, 0x0a, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1302,8 +1292,9 @@ var _ grpc.ClientConn
 // is compatible with the grpc package it is being compiled against.
 const _ = grpc.SupportPackageIsVersion4
 
-// Client API for Config service
-
+// ConfigClient is the client API for Config service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 type ConfigClient interface {
 	Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
 	GetAll(ctx context.Context, in *GetAllRequest, opts ...grpc.CallOption) (*GetAllResponse, error)
@@ -1365,8 +1356,7 @@ func (c *configClient) Delete(ctx context.Context, in *DeleteRequest, opts ...gr
 	return out, nil
 }
 
-// Server API for Config service
-
+// ConfigServer is the server API for Config service.
 type ConfigServer interface {
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	GetAll(context.Context, *GetAllRequest) (*GetAllResponse, error)
@@ -1375,6 +1365,26 @@ type ConfigServer interface {
 	Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
 }
 
+// UnimplementedConfigServer can be embedded to have forward compatible implementations.
+type UnimplementedConfigServer struct {
+}
+
+func (*UnimplementedConfigServer) Create(ctx context.Context, req *CreateRequest) (*CreateResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
+}
+func (*UnimplementedConfigServer) GetAll(ctx context.Context, req *GetAllRequest) (*GetAllResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetAll not implemented")
+}
+func (*UnimplementedConfigServer) Get(ctx context.Context, req *GetRequest) (*GetResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
+}
+func (*UnimplementedConfigServer) Update(ctx context.Context, req *UpdateRequest) (*UpdateResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
+}
+func (*UnimplementedConfigServer) Delete(ctx context.Context, req *DeleteRequest) (*DeleteResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
+}
+
 func RegisterConfigServer(s *grpc.Server, srv ConfigServer) {
 	s.RegisterService(&_Config_serviceDesc, srv)
 }
@@ -1495,13 +1505,13 @@ var _Config_serviceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "configpb.proto",
+	Metadata: "proto/configpb.proto",
 }
 
 func (m *Status) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1509,31 +1519,38 @@ func (m *Status) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *Status) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Status) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Code != 0 {
-		dAtA[i] = 0x8
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Code))
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
 	if len(m.Message) > 0 {
-		dAtA[i] = 0x12
-		i++
+		i -= len(m.Message)
+		copy(dAtA[i:], m.Message)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Message)))
-		i += copy(dAtA[i:], m.Message)
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Code != 0 {
+		i = encodeVarintConfigpb(dAtA, i, uint64(m.Code))
+		i--
+		dAtA[i] = 0x8
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *Version) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1541,30 +1558,36 @@ func (m *Version) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *Version) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Version) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Local != 0 {
-		dAtA[i] = 0x8
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Local))
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
 	if m.Global != 0 {
-		dAtA[i] = 0x10
-		i++
 		i = encodeVarintConfigpb(dAtA, i, uint64(m.Global))
+		i--
+		dAtA[i] = 0x10
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Local != 0 {
+		i = encodeVarintConfigpb(dAtA, i, uint64(m.Local))
+		i--
+		dAtA[i] = 0x8
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *Local) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1572,26 +1595,33 @@ func (m *Local) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *Local) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Local) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
 	if len(m.ComponentId) > 0 {
-		dAtA[i] = 0xa
-		i++
+		i -= len(m.ComponentId)
+		copy(dAtA[i:], m.ComponentId)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.ComponentId)))
-		i += copy(dAtA[i:], m.ComponentId)
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *Global) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1599,26 +1629,33 @@ func (m *Global) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *Global) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Global) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
 	if len(m.Component) > 0 {
-		dAtA[i] = 0xa
-		i++
+		i -= len(m.Component)
+		copy(dAtA[i:], m.Component)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Component)))
-		i += copy(dAtA[i:], m.Component)
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *ConfigKind) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1626,55 +1663,77 @@ func (m *ConfigKind) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *ConfigKind) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ConfigKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
 	if m.Kind != nil {
-		nn1, err := m.Kind.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size := m.Kind.Size()
+			i -= size
+			if _, err := m.Kind.MarshalTo(dAtA[i:]); err != nil {
+				return 0, err
+			}
 		}
-		i += nn1
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *ConfigKind_Local) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ConfigKind_Local) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	if m.Local != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Local.Size()))
-		n2, err := m.Local.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Local.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n2
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 func (m *ConfigKind_Global) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ConfigKind_Global) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	if m.Global != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Global.Size()))
-		n3, err := m.Global.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Global.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n3
+		i--
+		dAtA[i] = 0x12
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 func (m *ConfigEntry) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1682,32 +1741,40 @@ func (m *ConfigEntry) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *ConfigEntry) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ConfigEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if len(m.Name) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Name)))
-		i += copy(dAtA[i:], m.Name)
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
 	if len(m.Value) > 0 {
-		dAtA[i] = 0x12
-		i++
+		i -= len(m.Value)
+		copy(dAtA[i:], m.Value)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Value)))
-		i += copy(dAtA[i:], m.Value)
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if len(m.Name) > 0 {
+		i -= len(m.Name)
+		copy(dAtA[i:], m.Name)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Name)))
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *LocalConfig) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1715,48 +1782,59 @@ func (m *LocalConfig) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *LocalConfig) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *LocalConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Version != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n4, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n4
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if len(m.Component) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Component)))
-		i += copy(dAtA[i:], m.Component)
+	if len(m.Config) > 0 {
+		i -= len(m.Config)
+		copy(dAtA[i:], m.Config)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
+		i--
+		dAtA[i] = 0x22
 	}
 	if len(m.ComponentId) > 0 {
-		dAtA[i] = 0x1a
-		i++
+		i -= len(m.ComponentId)
+		copy(dAtA[i:], m.ComponentId)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.ComponentId)))
-		i += copy(dAtA[i:], m.ComponentId)
+		i--
+		dAtA[i] = 0x1a
 	}
-	if len(m.Config) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
-		i += copy(dAtA[i:], m.Config)
+	if len(m.Component) > 0 {
+		i -= len(m.Component)
+		copy(dAtA[i:], m.Component)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Component)))
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Version != nil {
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *Header) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1764,25 +1842,31 @@ func (m *Header) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *Header) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
 	if m.ClusterId != 0 {
-		dAtA[i] = 0x8
-		i++
 		i = encodeVarintConfigpb(dAtA, i, uint64(m.ClusterId))
+		i--
+		dAtA[i] = 0x8
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
-	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *CreateRequest) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1790,58 +1874,71 @@ func (m *CreateRequest) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *CreateRequest) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *CreateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n5, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n5
-	}
-	if m.Version != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n6, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n6
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if len(m.Component) > 0 {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Component)))
-		i += copy(dAtA[i:], m.Component)
+	if len(m.Config) > 0 {
+		i -= len(m.Config)
+		copy(dAtA[i:], m.Config)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
+		i--
+		dAtA[i] = 0x2a
 	}
 	if len(m.ComponentId) > 0 {
-		dAtA[i] = 0x22
-		i++
+		i -= len(m.ComponentId)
+		copy(dAtA[i:], m.ComponentId)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.ComponentId)))
-		i += copy(dAtA[i:], m.ComponentId)
+		i--
+		dAtA[i] = 0x22
 	}
-	if len(m.Config) > 0 {
-		dAtA[i] = 0x2a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
-		i += copy(dAtA[i:], m.Config)
+	if len(m.Component) > 0 {
+		i -= len(m.Component)
+		copy(dAtA[i:], m.Component)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Component)))
+		i--
+		dAtA[i] = 0x1a
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Version != nil {
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x12
+	}
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *CreateResponse) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1849,56 +1946,69 @@ func (m *CreateResponse) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *CreateResponse) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *CreateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n7, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n7
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if m.Status != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Status.Size()))
-		n8, err := m.Status.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n8
+	if len(m.Config) > 0 {
+		i -= len(m.Config)
+		copy(dAtA[i:], m.Config)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
+		i--
+		dAtA[i] = 0x22
 	}
 	if m.Version != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n9, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n9
+		i--
+		dAtA[i] = 0x1a
 	}
-	if len(m.Config) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
-		i += copy(dAtA[i:], m.Config)
+	if m.Status != nil {
+		{
+			size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *GetAllRequest) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1906,30 +2016,38 @@ func (m *GetAllRequest) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *GetAllRequest) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GetAllRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
 	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n10, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n10
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *GetAllResponse) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1937,52 +2055,64 @@ func (m *GetAllResponse) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *GetAllResponse) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GetAllResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n11, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if len(m.LocalConfigs) > 0 {
+		for iNdEx := len(m.LocalConfigs) - 1; iNdEx >= 0; iNdEx-- {
+			{
+				size, err := m.LocalConfigs[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+				if err != nil {
+					return 0, err
+				}
+				i -= size
+				i = encodeVarintConfigpb(dAtA, i, uint64(size))
+			}
+			i--
+			dAtA[i] = 0x1a
 		}
-		i += n11
 	}
 	if m.Status != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Status.Size()))
-		n12, err := m.Status.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n12
+		i--
+		dAtA[i] = 0x12
 	}
-	if len(m.LocalConfigs) > 0 {
-		for _, msg := range m.LocalConfigs {
-			dAtA[i] = 0x1a
-			i++
-			i = encodeVarintConfigpb(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
-			i += n
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
+		i--
+		dAtA[i] = 0xa
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
-	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *GetRequest) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -1990,52 +2120,64 @@ func (m *GetRequest) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *GetRequest) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n13, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n13
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if m.Version != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n14, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n14
+	if len(m.ComponentId) > 0 {
+		i -= len(m.ComponentId)
+		copy(dAtA[i:], m.ComponentId)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.ComponentId)))
+		i--
+		dAtA[i] = 0x22
 	}
 	if len(m.Component) > 0 {
-		dAtA[i] = 0x1a
-		i++
+		i -= len(m.Component)
+		copy(dAtA[i:], m.Component)
 		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Component)))
-		i += copy(dAtA[i:], m.Component)
+		i--
+		dAtA[i] = 0x1a
 	}
-	if len(m.ComponentId) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.ComponentId)))
-		i += copy(dAtA[i:], m.ComponentId)
+	if m.Version != nil {
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *GetResponse) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -2043,56 +2185,69 @@ func (m *GetResponse) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *GetResponse) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n15, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n15
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if m.Status != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Status.Size()))
-		n16, err := m.Status.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n16
+	if len(m.Config) > 0 {
+		i -= len(m.Config)
+		copy(dAtA[i:], m.Config)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
+		i--
+		dAtA[i] = 0x22
 	}
 	if m.Version != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n17, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n17
+		i--
+		dAtA[i] = 0x1a
 	}
-	if len(m.Config) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
-		i += copy(dAtA[i:], m.Config)
+	if m.Status != nil {
+		{
+			size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *UpdateRequest) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -2100,119 +2255,146 @@ func (m *UpdateRequest) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *UpdateRequest) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *UpdateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n18, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n18
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if m.Version != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n19, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+	if len(m.Entries) > 0 {
+		for iNdEx := len(m.Entries) - 1; iNdEx >= 0; iNdEx-- {
+			{
+				size, err := m.Entries[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+				if err != nil {
+					return 0, err
+				}
+				i -= size
+				i = encodeVarintConfigpb(dAtA, i, uint64(size))
+			}
+			i--
+			dAtA[i] = 0x22
 		}
-		i += n19
 	}
 	if m.Kind != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Kind.Size()))
-		n20, err := m.Kind.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Kind.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n20
+		i--
+		dAtA[i] = 0x1a
 	}
-	if len(m.Entries) > 0 {
-		for _, msg := range m.Entries {
-			dAtA[i] = 0x22
-			i++
-			i = encodeVarintConfigpb(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
+	if m.Version != nil {
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
-			i += n
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *UpdateResponse) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
 	return dAtA[:n], nil
 }
 
-func (m *UpdateResponse) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+func (m *UpdateResponse) MarshalTo(dAtA []byte) (int, error) {
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *UpdateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n21, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n21
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if m.Status != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Status.Size()))
-		n22, err := m.Status.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
-		}
-		i += n22
+	if len(m.Config) > 0 {
+		i -= len(m.Config)
+		copy(dAtA[i:], m.Config)
+		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
+		i--
+		dAtA[i] = 0x22
 	}
 	if m.Version != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n23, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n23
+		i--
+		dAtA[i] = 0x1a
 	}
-	if len(m.Config) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(len(m.Config)))
-		i += copy(dAtA[i:], m.Config)
+	if m.Status != nil {
+		{
+			size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *DeleteRequest) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -2220,50 +2402,62 @@ func (m *DeleteRequest) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *DeleteRequest) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *DeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n24, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if m.Kind != nil {
+		{
+			size, err := m.Kind.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n24
+		i--
+		dAtA[i] = 0x1a
 	}
 	if m.Version != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n25, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n25
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.Kind != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Kind.Size()))
-		n26, err := m.Kind.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n26
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func (m *DeleteResponse) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
 	if err != nil {
 		return nil, err
 	}
@@ -2271,56 +2465,73 @@ func (m *DeleteResponse) Marshal() (dAtA []byte, err error) {
 }
 
 func (m *DeleteResponse) MarshalTo(dAtA []byte) (int, error) {
-	var i int
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *DeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
 	_ = i
 	var l int
 	_ = l
-	if m.Header != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Header.Size()))
-		n27, err := m.Header.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if m.Version != nil {
+		{
+			size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n27
+		i--
+		dAtA[i] = 0x1a
 	}
 	if m.Status != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Status.Size()))
-		n28, err := m.Status.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+		{
+			size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n28
+		i--
+		dAtA[i] = 0x12
 	}
-	if m.Version != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintConfigpb(dAtA, i, uint64(m.Version.Size()))
-		n29, err := m.Version.MarshalTo(dAtA[i:])
-		if err != nil {
-			return 0, err
+	if m.Header != nil {
+		{
+			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintConfigpb(dAtA, i, uint64(size))
 		}
-		i += n29
-	}
-	if m.XXX_unrecognized != nil {
-		i += copy(dAtA[i:], m.XXX_unrecognized)
+		i--
+		dAtA[i] = 0xa
 	}
-	return i, nil
+	return len(dAtA) - i, nil
 }
 
 func encodeVarintConfigpb(dAtA []byte, offset int, v uint64) int {
+	offset -= sovConfigpb(v)
+	base := offset
 	for v >= 1<<7 {
 		dAtA[offset] = uint8(v&0x7f | 0x80)
 		v >>= 7
 		offset++
 	}
 	dAtA[offset] = uint8(v)
-	return offset + 1
+	return base
 }
 func (m *Status) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Code != 0 {
@@ -2337,6 +2548,9 @@ func (m *Status) Size() (n int) {
 }
 
 func (m *Version) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Local != 0 {
@@ -2352,6 +2566,9 @@ func (m *Version) Size() (n int) {
 }
 
 func (m *Local) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	l = len(m.ComponentId)
@@ -2365,6 +2582,9 @@ func (m *Local) Size() (n int) {
 }
 
 func (m *Global) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	l = len(m.Component)
@@ -2378,6 +2598,9 @@ func (m *Global) Size() (n int) {
 }
 
 func (m *ConfigKind) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Kind != nil {
@@ -2390,6 +2613,9 @@ func (m *ConfigKind) Size() (n int) {
 }
 
 func (m *ConfigKind_Local) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Local != nil {
@@ -2399,6 +2625,9 @@ func (m *ConfigKind_Local) Size() (n int) {
 	return n
 }
 func (m *ConfigKind_Global) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Global != nil {
@@ -2408,6 +2637,9 @@ func (m *ConfigKind_Global) Size() (n int) {
 	return n
 }
 func (m *ConfigEntry) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	l = len(m.Name)
@@ -2425,6 +2657,9 @@ func (m *ConfigEntry) Size() (n int) {
 }
 
 func (m *LocalConfig) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Version != nil {
@@ -2450,6 +2685,9 @@ func (m *LocalConfig) Size() (n int) {
 }
 
 func (m *Header) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.ClusterId != 0 {
@@ -2462,6 +2700,9 @@ func (m *Header) Size() (n int) {
 }
 
 func (m *CreateRequest) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2491,6 +2732,9 @@ func (m *CreateRequest) Size() (n int) {
 }
 
 func (m *CreateResponse) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2516,6 +2760,9 @@ func (m *CreateResponse) Size() (n int) {
 }
 
 func (m *GetAllRequest) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2529,6 +2776,9 @@ func (m *GetAllRequest) Size() (n int) {
 }
 
 func (m *GetAllResponse) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2552,6 +2802,9 @@ func (m *GetAllResponse) Size() (n int) {
 }
 
 func (m *GetRequest) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2577,6 +2830,9 @@ func (m *GetRequest) Size() (n int) {
 }
 
 func (m *GetResponse) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2602,6 +2858,9 @@ func (m *GetResponse) Size() (n int) {
 }
 
 func (m *UpdateRequest) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2629,6 +2888,9 @@ func (m *UpdateRequest) Size() (n int) {
 }
 
 func (m *UpdateResponse) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2654,6 +2916,9 @@ func (m *UpdateResponse) Size() (n int) {
 }
 
 func (m *DeleteRequest) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2675,6 +2940,9 @@ func (m *DeleteRequest) Size() (n int) {
 }
 
 func (m *DeleteResponse) Size() (n int) {
+	if m == nil {
+		return 0
+	}
 	var l int
 	_ = l
 	if m.Header != nil {
@@ -2696,14 +2964,7 @@ func (m *DeleteResponse) Size() (n int) {
 }
 
 func sovConfigpb(x uint64) (n int) {
-	for {
-		n++
-		x >>= 7
-		if x == 0 {
-			break
-		}
-	}
-	return n
+	return (math_bits.Len64(x|1) + 6) / 7
 }
 func sozConfigpb(x uint64) (n int) {
 	return sovConfigpb(uint64((x << 1) ^ uint64((int64(x) >> 63))))
@@ -2723,7 +2984,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -2751,7 +3012,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				m.Code |= (StatusCode(b) & 0x7F) << shift
+				m.Code |= StatusCode(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -2770,7 +3031,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -2780,6 +3041,9 @@ func (m *Status) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -2791,7 +3055,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -2822,7 +3086,7 @@ func (m *Version) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -2850,7 +3114,7 @@ func (m *Version) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				m.Local |= (uint64(b) & 0x7F) << shift
+				m.Local |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -2869,7 +3133,7 @@ func (m *Version) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				m.Global |= (uint64(b) & 0x7F) << shift
+				m.Global |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -2880,7 +3144,7 @@ func (m *Version) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -2911,7 +3175,7 @@ func (m *Local) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -2939,7 +3203,7 @@ func (m *Local) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -2949,6 +3213,9 @@ func (m *Local) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -2960,7 +3227,7 @@ func (m *Local) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -2991,7 +3258,7 @@ func (m *Global) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3019,7 +3286,7 @@ func (m *Global) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3029,6 +3296,9 @@ func (m *Global) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3040,7 +3310,7 @@ func (m *Global) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3071,7 +3341,7 @@ func (m *ConfigKind) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3099,7 +3369,7 @@ func (m *ConfigKind) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3108,6 +3378,9 @@ func (m *ConfigKind) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3131,7 +3404,7 @@ func (m *ConfigKind) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3140,6 +3413,9 @@ func (m *ConfigKind) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3155,7 +3431,7 @@ func (m *ConfigKind) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3186,7 +3462,7 @@ func (m *ConfigEntry) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3214,7 +3490,7 @@ func (m *ConfigEntry) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3224,6 +3500,9 @@ func (m *ConfigEntry) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3243,7 +3522,7 @@ func (m *ConfigEntry) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3253,6 +3532,9 @@ func (m *ConfigEntry) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3264,7 +3546,7 @@ func (m *ConfigEntry) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3295,7 +3577,7 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3323,7 +3605,7 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3332,6 +3614,9 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3356,7 +3641,7 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3366,6 +3651,9 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3385,7 +3673,7 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3395,6 +3683,9 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3414,7 +3705,7 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3424,6 +3715,9 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3435,7 +3729,7 @@ func (m *LocalConfig) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3466,7 +3760,7 @@ func (m *Header) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3494,7 +3788,7 @@ func (m *Header) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				m.ClusterId |= (uint64(b) & 0x7F) << shift
+				m.ClusterId |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3505,7 +3799,7 @@ func (m *Header) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3536,7 +3830,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3564,7 +3858,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3573,6 +3867,9 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3597,7 +3894,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3606,6 +3903,9 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3630,7 +3930,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3640,6 +3940,9 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3659,7 +3962,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3669,6 +3972,9 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3688,7 +3994,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3698,6 +4004,9 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3709,7 +4018,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3740,7 +4049,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3768,7 +4077,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3777,6 +4086,9 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3801,7 +4113,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3810,6 +4122,9 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3834,7 +4149,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3843,6 +4158,9 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3867,7 +4185,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3877,6 +4195,9 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3888,7 +4209,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -3919,7 +4240,7 @@ func (m *GetAllRequest) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -3947,7 +4268,7 @@ func (m *GetAllRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -3956,6 +4277,9 @@ func (m *GetAllRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -3972,7 +4296,7 @@ func (m *GetAllRequest) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -4003,7 +4327,7 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -4031,7 +4355,7 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4040,6 +4364,9 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4064,7 +4391,7 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4073,6 +4400,9 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4097,7 +4427,7 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4106,6 +4436,9 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4120,7 +4453,7 @@ func (m *GetAllResponse) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -4151,7 +4484,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -4179,7 +4512,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4188,6 +4521,9 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4212,7 +4548,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4221,6 +4557,9 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4245,7 +4584,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4255,6 +4594,9 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4274,7 +4616,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4284,6 +4626,9 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4295,7 +4640,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -4326,7 +4671,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -4354,7 +4699,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4363,6 +4708,9 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4387,7 +4735,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4396,6 +4744,9 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4420,7 +4771,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4429,6 +4780,9 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4453,7 +4807,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4463,6 +4817,9 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4474,7 +4831,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -4505,7 +4862,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -4533,7 +4890,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4542,6 +4899,9 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4566,7 +4926,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4575,6 +4935,9 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4599,7 +4962,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4608,6 +4971,9 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4632,7 +4998,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4641,6 +5007,9 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4655,7 +5024,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -4686,7 +5055,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -4714,7 +5083,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4723,6 +5092,9 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4747,7 +5119,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4756,6 +5128,9 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4780,7 +5155,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4789,6 +5164,9 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4813,7 +5191,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= (uint64(b) & 0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4823,6 +5201,9 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4834,7 +5215,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -4865,7 +5246,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -4893,7 +5274,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4902,6 +5283,9 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4926,7 +5310,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4935,6 +5319,9 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4959,7 +5346,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -4968,6 +5355,9 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -4984,7 +5374,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -5015,7 +5405,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 			}
 			b := dAtA[iNdEx]
 			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
+			wire |= uint64(b&0x7F) << shift
 			if b < 0x80 {
 				break
 			}
@@ -5043,7 +5433,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -5052,6 +5442,9 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -5076,7 +5469,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -5085,6 +5478,9 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -5109,7 +5505,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= (int(b) & 0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
@@ -5118,6 +5514,9 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 				return ErrInvalidLengthConfigpb
 			}
 			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthConfigpb
+			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
@@ -5134,7 +5533,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 			if err != nil {
 				return err
 			}
-			if skippy < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthConfigpb
 			}
 			if (iNdEx + skippy) > l {
@@ -5153,6 +5552,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
 func skipConfigpb(dAtA []byte) (n int, err error) {
 	l := len(dAtA)
 	iNdEx := 0
+	depth := 0
 	for iNdEx < l {
 		var wire uint64
 		for shift := uint(0); ; shift += 7 {
@@ -5184,10 +5584,8 @@ func skipConfigpb(dAtA []byte) (n int, err error) {
 					break
 				}
 			}
-			return iNdEx, nil
 		case 1:
 			iNdEx += 8
-			return iNdEx, nil
 		case 2:
 			var length int
 			for shift := uint(0); ; shift += 7 {
@@ -5204,111 +5602,34 @@ func skipConfigpb(dAtA []byte) (n int, err error) {
 					break
 				}
 			}
-			iNdEx += length
 			if length < 0 {
 				return 0, ErrInvalidLengthConfigpb
 			}
-			return iNdEx, nil
+			iNdEx += length
 		case 3:
-			for {
-				var innerWire uint64
-				var start int = iNdEx
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return 0, ErrIntOverflowConfigpb
-					}
-					if iNdEx >= l {
-						return 0, io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					innerWire |= (uint64(b) & 0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				innerWireType := int(innerWire & 0x7)
-				if innerWireType == 4 {
-					break
-				}
-				next, err := skipConfigpb(dAtA[start:])
-				if err != nil {
-					return 0, err
-				}
-				iNdEx = start + next
-			}
-			return iNdEx, nil
+			depth++
 		case 4:
-			return iNdEx, nil
+			if depth == 0 {
+				return 0, ErrUnexpectedEndOfGroupConfigpb
+			}
+			depth--
 		case 5:
 			iNdEx += 4
-			return iNdEx, nil
 		default:
 			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
 		}
+		if iNdEx < 0 {
+			return 0, ErrInvalidLengthConfigpb
+		}
+		if depth == 0 {
+			return iNdEx, nil
+		}
 	}
-	panic("unreachable")
+	return 0, io.ErrUnexpectedEOF
 }
 
 var (
-	ErrInvalidLengthConfigpb = fmt.Errorf("proto: negative length found during unmarshaling")
-	ErrIntOverflowConfigpb   = fmt.Errorf("proto: integer overflow")
+	ErrInvalidLengthConfigpb        = fmt.Errorf("proto: negative length found during unmarshaling")
+	ErrIntOverflowConfigpb          = fmt.Errorf("proto: integer overflow")
+	ErrUnexpectedEndOfGroupConfigpb = fmt.Errorf("proto: unexpected end of group")
 )
-
-func init() { proto.RegisterFile("configpb.proto", fileDescriptor_configpb_6d0f7689747bcf7d) }
-
-var fileDescriptor_configpb_6d0f7689747bcf7d = []byte{
-	// 830 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4f, 0x6f, 0xe3, 0x44,
-	0x14, 0xcf, 0x24, 0x8e, 0xb3, 0x79, 0x6e, 0xd2, 0xec, 0x90, 0xee, 0x46, 0xd1, 0x12, 0x95, 0x39,
-	0xb0, 0x51, 0x90, 0x36, 0x52, 0x38, 0xac, 0x58, 0x89, 0xc3, 0x36, 0x4d, 0x93, 0xa8, 0xc5, 0x46,
-	0xd3, 0x7f, 0xc7, 0xc8, 0x8d, 0x87, 0x60, 0xe1, 0x7a, 0x82, 0xed, 0x54, 0xea, 0x95, 0x4f, 0x00,
-	0xea, 0x85, 0x23, 0x07, 0x84, 0xe0, 0x53, 0x20, 0x6e, 0x1c, 0x91, 0xb8, 0x70, 0x44, 0x85, 0x6f,
-	0xc0, 0x17, 0x40, 0x99, 0xb1, 0xeb, 0x71, 0x22, 0xa8, 0x7a, 0xa8, 0x94, 0x9b, 0xdf, 0xbc, 0x3f,
-	0xf3, 0xfb, 0xfd, 0xfc, 0xde, 0xb3, 0xa1, 0x3a, 0xe5, 0xfe, 0x67, 0xee, 0x6c, 0x7e, 0xf1, 0x6a,
-	0x1e, 0xf0, 0x88, 0xe3, 0x27, 0x89, 0xdd, 0xac, 0xcf, 0xf8, 0x8c, 0x8b, 0xc3, 0xee, 0xf2, 0x49,
-	0xfa, 0x9b, 0xdb, 0xc1, 0x22, 0x8c, 0xc4, 0x63, 0x7c, 0xf0, 0x62, 0xc6, 0xf9, 0xcc, 0x63, 0x5d,
-	0x7b, 0xee, 0x76, 0x6d, 0xdf, 0xe7, 0x91, 0x1d, 0xb9, 0xdc, 0x0f, 0xa5, 0x97, 0x1c, 0x81, 0x7e,
-	0x1c, 0xd9, 0xd1, 0x22, 0xc4, 0x6d, 0xd0, 0xa6, 0xdc, 0x61, 0x0d, 0xb4, 0x8b, 0xda, 0xd5, 0x5e,
-	0xfd, 0xd5, 0xdd, 0xbd, 0xd2, 0xdf, 0xe7, 0x0e, 0xa3, 0x22, 0x02, 0x37, 0xa0, 0x74, 0xc9, 0xc2,
-	0xd0, 0x9e, 0xb1, 0x46, 0x7e, 0x17, 0xb5, 0xcb, 0x34, 0x31, 0xc9, 0x6b, 0x28, 0x9d, 0xb1, 0x20,
-	0x74, 0xb9, 0x8f, 0xeb, 0x50, 0xf4, 0xf8, 0xd4, 0xf6, 0x44, 0x3d, 0x8d, 0x4a, 0x03, 0x3f, 0x03,
-	0x7d, 0xe6, 0xf1, 0x0b, 0xdb, 0x13, 0x99, 0x1a, 0x8d, 0x2d, 0xd2, 0x81, 0xe2, 0x91, 0x08, 0x78,
-	0x0f, 0xb6, 0xa6, 0xfc, 0x72, 0xce, 0x7d, 0xe6, 0x47, 0x13, 0xd7, 0x11, 0xd9, 0x65, 0x6a, 0xdc,
-	0x9d, 0x8d, 0x1d, 0xf2, 0x3e, 0xe8, 0x43, 0x91, 0x85, 0x5f, 0x40, 0xf9, 0xce, 0x11, 0x47, 0xa6,
-	0x07, 0xc4, 0x05, 0xe8, 0x0b, 0x0e, 0x87, 0xae, 0xef, 0xe0, 0x97, 0x2a, 0x1e, 0xa3, 0xb7, 0x9d,
-	0xf2, 0x13, 0x17, 0x8f, 0x72, 0x09, 0xc4, 0x4e, 0x06, 0xa2, 0xd1, 0xab, 0xa5, 0x91, 0xf2, 0xda,
-	0x51, 0x2e, 0x81, 0xbd, 0xa7, 0x83, 0xf6, 0x85, 0xeb, 0x3b, 0xe4, 0x35, 0x18, 0xf2, 0xaa, 0x81,
-	0x1f, 0x05, 0xd7, 0x18, 0x83, 0xe6, 0xdb, 0x97, 0x2c, 0x86, 0x24, 0x9e, 0x97, 0x7a, 0x5c, 0xd9,
-	0xde, 0x22, 0x91, 0x4c, 0x1a, 0xe4, 0x06, 0x81, 0x21, 0xee, 0x97, 0xe9, 0xf8, 0x03, 0x28, 0x5d,
-	0x49, 0x01, 0x63, 0x9c, 0x4f, 0xd3, 0xdb, 0x63, 0x65, 0x69, 0x12, 0x91, 0xa5, 0x9f, 0x5f, 0xa1,
-	0xbf, 0xa6, 0x64, 0x61, 0x4d, 0xc9, 0xe5, 0xdb, 0x90, 0xd5, 0x1b, 0x9a, 0x70, 0xc6, 0x16, 0x79,
-	0x09, 0xfa, 0x88, 0xd9, 0x0e, 0x0b, 0xf0, 0xbb, 0x00, 0x53, 0x6f, 0x11, 0x46, 0x2c, 0x48, 0x5e,
-	0x86, 0x46, 0xcb, 0xf1, 0xc9, 0xd8, 0x21, 0x3f, 0x23, 0xa8, 0xf4, 0x03, 0x66, 0x47, 0x8c, 0xb2,
-	0x2f, 0x17, 0x2c, 0x8c, 0x70, 0x1b, 0xf4, 0xcf, 0x45, 0x6a, 0x8c, 0x5f, 0x51, 0x4f, 0x96, 0xa4,
-	0xb1, 0x5f, 0xa5, 0x9a, 0x7f, 0x18, 0xd5, 0xc2, 0x7d, 0x54, 0xb5, 0xff, 0xa3, 0x5a, 0xcc, 0x50,
-	0xfd, 0x09, 0x41, 0x35, 0x61, 0x10, 0xce, 0xb9, 0x1f, 0xb2, 0x07, 0x50, 0x68, 0x83, 0x1e, 0x8a,
-	0xe1, 0x58, 0x6f, 0x15, 0x39, 0x34, 0x34, 0xf6, 0xab, 0x64, 0x0b, 0xf7, 0x92, 0xfd, 0xaf, 0xd7,
-	0xf2, 0x11, 0x54, 0x86, 0x2c, 0x7a, 0xeb, 0x79, 0x0f, 0x16, 0x9b, 0x7c, 0x87, 0xa0, 0x9a, 0xe4,
-	0x3e, 0x22, 0xcd, 0x37, 0x50, 0x11, 0x43, 0x34, 0x91, 0x01, 0x61, 0xa3, 0xb0, 0x5b, 0x68, 0x1b,
-	0xbd, 0x9d, 0x95, 0x61, 0x93, 0xcd, 0x4e, 0xb7, 0xbc, 0xd4, 0x08, 0xc9, 0xf7, 0x08, 0x60, 0xc8,
-	0xa2, 0x0d, 0x6f, 0x24, 0xf2, 0x03, 0x02, 0x43, 0xc0, 0xdc, 0xf4, 0x6e, 0xf9, 0x05, 0x41, 0xe5,
-	0x74, 0xee, 0x3c, 0xfe, 0x6c, 0xb6, 0xe5, 0x12, 0x8c, 0xa1, 0x2a, 0x1f, 0x8e, 0x74, 0xfb, 0x52,
-	0x11, 0x81, 0xbb, 0x50, 0x62, 0x7e, 0x14, 0xb8, 0x2c, 0x6c, 0x68, 0xab, 0x8d, 0xa1, 0xec, 0x4f,
-	0x9a, 0x44, 0x89, 0xe9, 0x4c, 0x38, 0x6c, 0xba, 0xde, 0x5f, 0x23, 0xa8, 0xec, 0x33, 0x8f, 0x6d,
-	0x8e, 0xde, 0xe4, 0x1b, 0x04, 0xd5, 0x04, 0xd2, 0x86, 0xc8, 0xd7, 0xb9, 0x06, 0x48, 0x7f, 0x28,
-	0xb0, 0x01, 0xa5, 0x53, 0xf3, 0xd0, 0xb4, 0xce, 0xcd, 0x5a, 0x0e, 0xeb, 0x90, 0xb7, 0x0e, 0x6b,
-	0x08, 0x3f, 0x85, 0xca, 0x39, 0xb5, 0xcc, 0xe1, 0xe4, 0x6c, 0x40, 0x8f, 0xc7, 0x96, 0x59, 0xcb,
-	0xe3, 0x2a, 0x80, 0x69, 0x9d, 0x4c, 0xfa, 0xa3, 0xb7, 0xe6, 0x70, 0x50, 0x2b, 0xe0, 0xe7, 0xf0,
-	0x4e, 0xdf, 0xfa, 0xe4, 0x53, 0xcb, 0x1c, 0x98, 0x27, 0x93, 0xa5, 0xe7, 0xc0, 0x3a, 0x35, 0xf7,
-	0x6b, 0x1a, 0x6e, 0xc2, 0xb3, 0xd4, 0x31, 0xde, 0x57, 0x7c, 0xc5, 0xde, 0x3f, 0x79, 0xd0, 0xe3,
-	0xef, 0xec, 0xc7, 0xa0, 0xcb, 0xad, 0x8f, 0x9f, 0x2b, 0xfa, 0xa9, 0x5f, 0xb2, 0x66, 0x63, 0xdd,
-	0x21, 0x35, 0x24, 0xb9, 0x65, 0xba, 0xdc, 0xa6, 0x6a, 0x7a, 0x66, 0x37, 0xab, 0xe9, 0xd9, 0xc5,
-	0x4b, 0x72, 0xf8, 0x00, 0x0a, 0x43, 0x16, 0xe1, 0x7a, 0x26, 0x24, 0x49, 0xdc, 0x59, 0x39, 0x8d,
-	0xb3, 0xf0, 0x57, 0xbf, 0xff, 0x7d, 0x93, 0xdf, 0xc2, 0xd0, 0x4d, 0xd7, 0x15, 0x05, 0x5d, 0x4e,
-	0x87, 0x0a, 0x23, 0x33, 0xf3, 0x2a, 0x8c, 0xec, 0x20, 0x91, 0x1d, 0x51, 0x70, 0x9b, 0x28, 0x05,
-	0xdf, 0xa0, 0x0e, 0xb6, 0x40, 0x97, 0x2d, 0xa3, 0xd6, 0xcc, 0xf4, 0xb5, 0x5a, 0x33, 0xdb, 0x5d,
-	0x09, 0xc8, 0x8e, 0x52, 0x73, 0xaf, 0xfe, 0xc7, 0x8f, 0x4f, 0xd0, 0xaf, 0xb7, 0x2d, 0xf4, 0xdb,
-	0x6d, 0x0b, 0xfd, 0x79, 0xdb, 0x42, 0xdf, 0xfe, 0xd5, 0xca, 0x5d, 0xe8, 0xe2, 0xf7, 0xf3, 0xc3,
-	0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x62, 0x2c, 0x39, 0xdf, 0x0a, 0x00, 0x00,
-}
diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go
deleted file mode 100644
index c0385b0..0000000
--- a/pkg/configpb/configpb.pb.gw.go
+++ /dev/null
@@ -1,317 +0,0 @@
-// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
-// source: configpb.proto
-
-/*
-Package configpb is a reverse proxy.
-
-It translates gRPC into RESTful JSON APIs.
-*/
-package configpb
-
-import (
-	"context"
-	"io"
-	"net/http"
-
-	"github.com/golang/protobuf/descriptor"
-	"github.com/golang/protobuf/proto"
-	"github.com/grpc-ecosystem/grpc-gateway/runtime"
-	"github.com/grpc-ecosystem/grpc-gateway/utilities"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/grpclog"
-	"google.golang.org/grpc/status"
-)
-
-// Suppress "imported and not used" errors
-var _ codes.Code
-var _ io.Reader
-var _ status.Status
-var _ = runtime.String
-var _ = utilities.NewDoubleArray
-var _ = descriptor.ForMessage
-
-var (
-	filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
-)
-
-func request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler, client ConfigClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetRequest
-	var metadata runtime.ServerMetadata
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_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_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler, server ConfigServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetRequest
-	var metadata runtime.ServerMetadata
-
-	if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_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_Config_Update_0(ctx context.Context, marshaler runtime.Marshaler, client ConfigClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq UpdateRequest
-	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.Update(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_Config_Update_0(ctx context.Context, marshaler runtime.Marshaler, server ConfigServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq UpdateRequest
-	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.Update(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_Config_Delete_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
-)
-
-func request_Config_Delete_0(ctx context.Context, marshaler runtime.Marshaler, client ConfigClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq DeleteRequest
-	var metadata runtime.ServerMetadata
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_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_Config_Delete_0(ctx context.Context, marshaler runtime.Marshaler, server ConfigServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq DeleteRequest
-	var metadata runtime.ServerMetadata
-
-	if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.Delete(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-// RegisterConfigHandlerServer registers the http handlers for service Config to "mux".
-// UnaryRPC     :call ConfigServer directly.
-// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error {
-
-	mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
-		ctx, cancel := context.WithCancel(req.Context())
-		defer cancel()
-		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_Config_Get_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
-		ctx, cancel := context.WithCancel(req.Context())
-		defer cancel()
-		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_Config_Update_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
-		ctx, cancel := context.WithCancel(req.Context())
-		defer cancel()
-		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_Config_Delete_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	return nil
-}
-
-// RegisterConfigHandlerFromEndpoint is same as RegisterConfigHandler but
-// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterConfigHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
-	conn, err := grpc.Dial(endpoint, opts...)
-	if err != nil {
-		return err
-	}
-	defer func() {
-		if err != nil {
-			if cerr := conn.Close(); cerr != nil {
-				grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
-			}
-			return
-		}
-		go func() {
-			<-ctx.Done()
-			if cerr := conn.Close(); cerr != nil {
-				grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
-			}
-		}()
-	}()
-
-	return RegisterConfigHandler(ctx, mux, conn)
-}
-
-// RegisterConfigHandler registers the http handlers for service Config to "mux".
-// The handlers forward requests to the grpc endpoint over "conn".
-func RegisterConfigHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
-	return RegisterConfigHandlerClient(ctx, mux, NewConfigClient(conn))
-}
-
-// RegisterConfigHandlerClient registers the http handlers for service Config
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ConfigClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ConfigClient"
-// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "ConfigClient" to call the correct interceptors.
-func RegisterConfigHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ConfigClient) error {
-
-	mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
-		ctx, cancel := context.WithCancel(req.Context())
-		defer cancel()
-		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_Config_Get_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_Config_Get_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
-		ctx, cancel := context.WithCancel(req.Context())
-		defer cancel()
-		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_Config_Update_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_Config_Update_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
-		ctx, cancel := context.WithCancel(req.Context())
-		defer cancel()
-		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_Config_Delete_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_Config_Delete_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	return nil
-}
-
-var (
-	pattern_Config_Get_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"component"}, "", runtime.AssumeColonVerbOpt(true)))
-
-	pattern_Config_Update_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"component"}, "", runtime.AssumeColonVerbOpt(true)))
-
-	pattern_Config_Delete_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"component"}, "", runtime.AssumeColonVerbOpt(true)))
-)
-
-var (
-	forward_Config_Get_0 = runtime.ForwardResponseMessage
-
-	forward_Config_Update_0 = runtime.ForwardResponseMessage
-
-	forward_Config_Delete_0 = runtime.ForwardResponseMessage
-)
diff --git a/proto/configpb.proto b/proto/configpb.proto
index 0276328..3d480ae 100644
--- a/proto/configpb.proto
+++ b/proto/configpb.proto
@@ -2,33 +2,19 @@ syntax = "proto3";
 package configpb;
 
 import "gogoproto/gogo.proto";
-import "rustproto.proto";
-import "google/api/annotations.proto";
+
+option go_package = "github.com/pingcap/kvproto/pkg/configpb";
 
 option (gogoproto.sizer_all) = true;
 option (gogoproto.marshaler_all) = true;
 option (gogoproto.unmarshaler_all) = true;
-option (rustproto.lite_runtime_all) = true;
 
 service Config {
     rpc Create(CreateRequest) returns (CreateResponse) {}
     rpc GetAll(GetAllRequest) returns (GetAllResponse) {}
-    rpc Get(GetRequest) returns (GetResponse) {
-        option (google.api.http) = { 
-            get: "/component"
-        };
-    }
-    rpc Update(UpdateRequest) returns (UpdateResponse) {
-        option (google.api.http) = { 
-            post: "/component" 
-            body: "*" 
-        };
-    }
-    rpc Delete(DeleteRequest) returns (DeleteResponse) {
-        option (google.api.http) = { 
-            delete: "/component"
-        };
-    }
+    rpc Get(GetRequest) returns (GetResponse) {}
+    rpc Update(UpdateRequest) returns (UpdateResponse) {}
+    rpc Delete(DeleteRequest) returns (DeleteResponse) {}
 }
 
 enum StatusCode {
