From dbf26c0e756ea6dabc17a8212efcf0e3b8c3309f Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Tue, 21 May 2024 00:58:10 -0700 Subject: [PATCH 1/6] vendor: Update longhorn repos for online rebuilding Longhorn 7199 Signed-off-by: Shuo Wu (cherry picked from commit 619813498cb8b39628930187106cc2daa120c071) --- go.mod | 6 +- go.sum | 12 +- .../pkg/types/types.go | 10 + .../types/pkg/generated/spdkrpc/spdk.pb.go | 3243 +++++++++++------ .../pkg/generated/spdkrpc/spdk_grpc.pb.go | 257 +- vendor/modules.txt | 6 +- 6 files changed, 2299 insertions(+), 1235 deletions(-) diff --git a/go.mod b/go.mod index 2afcfb24e5..351901f3a3 100644 --- a/go.mod +++ b/go.mod @@ -62,9 +62,9 @@ require ( github.com/longhorn/backupstore v0.0.0-20240720163059-56c90cd23634 github.com/longhorn/go-common-libs v0.0.0-20240720044518-32fc527fe868 github.com/longhorn/go-iscsi-helper v0.0.0-20240720064937-c6ce82d67032 - github.com/longhorn/go-spdk-helper v0.0.0-20240720064915-d2ce0846d2a7 + github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5 github.com/longhorn/longhorn-engine v1.7.0-rc1 - github.com/longhorn/longhorn-instance-manager v1.7.0-rc1 + github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784 github.com/longhorn/longhorn-share-manager v1.7.0-rc1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 @@ -103,7 +103,7 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b // indirect github.com/jonboulle/clockwork v0.4.0 // indirect - github.com/longhorn/types v0.0.0-20240706151541-33cb010c3544 // indirect + github.com/longhorn/types v0.0.0-20240723142222-56701c990023 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect diff --git a/go.sum b/go.sum index 107193a3d5..d10bb8c82b 100644 --- a/go.sum +++ b/go.sum @@ -1228,16 +1228,16 @@ github.com/longhorn/go-common-libs v0.0.0-20240720044518-32fc527fe868 h1:B1L6EGH github.com/longhorn/go-common-libs v0.0.0-20240720044518-32fc527fe868/go.mod h1:o01gaAiKE5NCd8+5i6csJSU4ELlW0Yn8GQ9U7pbXG9w= github.com/longhorn/go-iscsi-helper v0.0.0-20240720064937-c6ce82d67032 h1:93y5fe2y/TeP58k6VDsVrGHTy+dbaJ28DaNRGhrnYs8= github.com/longhorn/go-iscsi-helper v0.0.0-20240720064937-c6ce82d67032/go.mod h1:r72HLu6d9YRW5u5ovmw8IkUFQoy9zHObx8yn9DCFp/w= -github.com/longhorn/go-spdk-helper v0.0.0-20240720064915-d2ce0846d2a7 h1:bwieBy2bUVi6sxFi2UbpXt292RykALG31yuChEYo66w= -github.com/longhorn/go-spdk-helper v0.0.0-20240720064915-d2ce0846d2a7/go.mod h1:BxsYHvCYn/1rfohn5021Wt8tFYQb+unq1jItx8+htHY= +github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5 h1:zz0gXSR3pjZ+iBPym+rfpsu+tMGd5TfgOsgvue867cc= +github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5/go.mod h1:lt/eCeOltUM9QbMxS6qDJRr/+wvavxbLGTzkKrqyaSI= github.com/longhorn/longhorn-engine v1.7.0-rc1 h1:kQ4BwCvBemWsQvVnLdRsbiCXR3zmQBMA1J9Ezysh2q0= github.com/longhorn/longhorn-engine v1.7.0-rc1/go.mod h1:u0TZ1221YusDYA+ExdVLjLid1Ps6JuJXgh9185l5D9Y= -github.com/longhorn/longhorn-instance-manager v1.7.0-rc1 h1:9hugpEQEmK6tMa1zY87GX1xrdq1Wb3TDqNl5LQzCWhM= -github.com/longhorn/longhorn-instance-manager v1.7.0-rc1/go.mod h1:HIo3UCiH81EtTPwOujkKZIIQbvmJ1A3OeRHShHlAEV0= +github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784 h1:LVtcsdIlxWcISUN5uMG9C4x9qQlRfDTNbaLFL3+R5H0= +github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784/go.mod h1:gLVS19NOiRcfxJoGBTVVdY6TntbXi/Ks6nWofoJZQsM= github.com/longhorn/longhorn-share-manager v1.7.0-rc1 h1:LsSkSajhG8tCfORKKfwK+8XHVrT/8rI9DRWb7fuoVls= github.com/longhorn/longhorn-share-manager v1.7.0-rc1/go.mod h1:R6+NscPU4lAV5ueO7//lBCAO3en0aDbZi5KkkOSUJvk= -github.com/longhorn/types v0.0.0-20240706151541-33cb010c3544 h1:U08l+0SbxCsododsraBHB5PdXrQme3TEh9iaREhRLQs= -github.com/longhorn/types v0.0.0-20240706151541-33cb010c3544/go.mod h1:KlJuZB8NfHchWshYxYgV9pPIxBKC04Vq05G2TfgMf7w= +github.com/longhorn/types v0.0.0-20240723142222-56701c990023 h1:6BYl+2rZhXjYZiBeLnWZPUgOiEoXGFA9CjcIfETdP/o= +github.com/longhorn/types v0.0.0-20240723142222-56701c990023/go.mod h1:KlJuZB8NfHchWshYxYgV9pPIxBKC04Vq05G2TfgMf7w= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= diff --git a/vendor/github.com/longhorn/longhorn-instance-manager/pkg/types/types.go b/vendor/github.com/longhorn/longhorn-instance-manager/pkg/types/types.go index 28b5bba286..d1ceec16fe 100644 --- a/vendor/github.com/longhorn/longhorn-instance-manager/pkg/types/types.go +++ b/vendor/github.com/longhorn/longhorn-instance-manager/pkg/types/types.go @@ -46,3 +46,13 @@ const ( const ( EngineConditionFilesystemReadOnly = "FilesystemReadOnly" ) + +const TcpAddressPrefix = "tcp://" + +func AddTcpPrefixForAddress(address string) string { + if address == "" { + return "" + } + + return TcpAddressPrefix + address +} diff --git a/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk.pb.go b/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk.pb.go index 7c26161e49..3b4e3deb89 100644 --- a/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk.pb.go +++ b/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk.pb.go @@ -329,12 +329,11 @@ type ReplicaCreateRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - LvsName string `protobuf:"bytes,2,opt,name=lvs_name,json=lvsName,proto3" json:"lvs_name,omitempty"` - LvsUuid string `protobuf:"bytes,3,opt,name=lvs_uuid,json=lvsUuid,proto3" json:"lvs_uuid,omitempty"` - SpecSize uint64 `protobuf:"varint,4,opt,name=spec_size,json=specSize,proto3" json:"spec_size,omitempty"` - ExposeRequired bool `protobuf:"varint,5,opt,name=expose_required,json=exposeRequired,proto3" json:"expose_required,omitempty"` - PortCount int32 `protobuf:"varint,6,opt,name=port_count,json=portCount,proto3" json:"port_count,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + LvsName string `protobuf:"bytes,2,opt,name=lvs_name,json=lvsName,proto3" json:"lvs_name,omitempty"` + LvsUuid string `protobuf:"bytes,3,opt,name=lvs_uuid,json=lvsUuid,proto3" json:"lvs_uuid,omitempty"` + SpecSize uint64 `protobuf:"varint,4,opt,name=spec_size,json=specSize,proto3" json:"spec_size,omitempty"` + PortCount int32 `protobuf:"varint,5,opt,name=port_count,json=portCount,proto3" json:"port_count,omitempty"` } func (x *ReplicaCreateRequest) Reset() { @@ -397,13 +396,6 @@ func (x *ReplicaCreateRequest) GetSpecSize() uint64 { return 0 } -func (x *ReplicaCreateRequest) GetExposeRequired() bool { - if x != nil { - return x.ExposeRequired - } - return false -} - func (x *ReplicaCreateRequest) GetPortCount() int32 { if x != nil { return x.PortCount @@ -565,9 +557,10 @@ type ReplicaRebuildingSrcStartRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - DstReplicaName string `protobuf:"bytes,2,opt,name=dst_replica_name,json=dstReplicaName,proto3" json:"dst_replica_name,omitempty"` - DstRebuildingLvolAddress string `protobuf:"bytes,3,opt,name=dst_rebuilding_lvol_address,json=dstRebuildingLvolAddress,proto3" json:"dst_rebuilding_lvol_address,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + DstReplicaName string `protobuf:"bytes,2,opt,name=dst_replica_name,json=dstReplicaName,proto3" json:"dst_replica_name,omitempty"` + DstReplicaAddress string `protobuf:"bytes,3,opt,name=dst_replica_address,json=dstReplicaAddress,proto3" json:"dst_replica_address,omitempty"` + ExposedSnapshotName string `protobuf:"bytes,4,opt,name=exposed_snapshot_name,json=exposedSnapshotName,proto3" json:"exposed_snapshot_name,omitempty"` } func (x *ReplicaRebuildingSrcStartRequest) Reset() { @@ -616,9 +609,63 @@ func (x *ReplicaRebuildingSrcStartRequest) GetDstReplicaName() string { return "" } -func (x *ReplicaRebuildingSrcStartRequest) GetDstRebuildingLvolAddress() string { +func (x *ReplicaRebuildingSrcStartRequest) GetDstReplicaAddress() string { if x != nil { - return x.DstRebuildingLvolAddress + return x.DstReplicaAddress + } + return "" +} + +func (x *ReplicaRebuildingSrcStartRequest) GetExposedSnapshotName() string { + if x != nil { + return x.ExposedSnapshotName + } + return "" +} + +type ReplicaRebuildingSrcStartResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExposedSnapshotLvolAddress string `protobuf:"bytes,1,opt,name=exposed_snapshot_lvol_address,json=exposedSnapshotLvolAddress,proto3" json:"exposed_snapshot_lvol_address,omitempty"` +} + +func (x *ReplicaRebuildingSrcStartResponse) Reset() { + *x = ReplicaRebuildingSrcStartResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicaRebuildingSrcStartResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicaRebuildingSrcStartResponse) ProtoMessage() {} + +func (x *ReplicaRebuildingSrcStartResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingSrcStartResponse.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingSrcStartResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{7} +} + +func (x *ReplicaRebuildingSrcStartResponse) GetExposedSnapshotLvolAddress() string { + if x != nil { + return x.ExposedSnapshotLvolAddress } return "" } @@ -635,7 +682,7 @@ type ReplicaRebuildingSrcFinishRequest struct { func (x *ReplicaRebuildingSrcFinishRequest) Reset() { *x = ReplicaRebuildingSrcFinishRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[7] + mi := &file_spdkrpc_spdk_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -648,7 +695,7 @@ func (x *ReplicaRebuildingSrcFinishRequest) String() string { func (*ReplicaRebuildingSrcFinishRequest) ProtoMessage() {} func (x *ReplicaRebuildingSrcFinishRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[7] + mi := &file_spdkrpc_spdk_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -661,7 +708,7 @@ func (x *ReplicaRebuildingSrcFinishRequest) ProtoReflect() protoreflect.Message // Deprecated: Use ReplicaRebuildingSrcFinishRequest.ProtoReflect.Descriptor instead. func (*ReplicaRebuildingSrcFinishRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{7} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{8} } func (x *ReplicaRebuildingSrcFinishRequest) GetName() string { @@ -691,7 +738,7 @@ type ReplicaRebuildingSrcAttachRequest struct { func (x *ReplicaRebuildingSrcAttachRequest) Reset() { *x = ReplicaRebuildingSrcAttachRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[8] + mi := &file_spdkrpc_spdk_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -704,7 +751,7 @@ func (x *ReplicaRebuildingSrcAttachRequest) String() string { func (*ReplicaRebuildingSrcAttachRequest) ProtoMessage() {} func (x *ReplicaRebuildingSrcAttachRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[8] + mi := &file_spdkrpc_spdk_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -717,7 +764,7 @@ func (x *ReplicaRebuildingSrcAttachRequest) ProtoReflect() protoreflect.Message // Deprecated: Use ReplicaRebuildingSrcAttachRequest.ProtoReflect.Descriptor instead. func (*ReplicaRebuildingSrcAttachRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{8} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{9} } func (x *ReplicaRebuildingSrcAttachRequest) GetName() string { @@ -753,7 +800,7 @@ type ReplicaRebuildingSrcDetachRequest struct { func (x *ReplicaRebuildingSrcDetachRequest) Reset() { *x = ReplicaRebuildingSrcDetachRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[9] + mi := &file_spdkrpc_spdk_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -766,7 +813,7 @@ func (x *ReplicaRebuildingSrcDetachRequest) String() string { func (*ReplicaRebuildingSrcDetachRequest) ProtoMessage() {} func (x *ReplicaRebuildingSrcDetachRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[9] + mi := &file_spdkrpc_spdk_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -779,7 +826,7 @@ func (x *ReplicaRebuildingSrcDetachRequest) ProtoReflect() protoreflect.Message // Deprecated: Use ReplicaRebuildingSrcDetachRequest.ProtoReflect.Descriptor instead. func (*ReplicaRebuildingSrcDetachRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{9} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{10} } func (x *ReplicaRebuildingSrcDetachRequest) GetName() string { @@ -796,7 +843,7 @@ func (x *ReplicaRebuildingSrcDetachRequest) GetDstReplicaName() string { return "" } -type ReplicaSnapshotShallowCopyRequest struct { +type ReplicaRebuildingSrcShallowCopyStartRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -805,23 +852,23 @@ type ReplicaSnapshotShallowCopyRequest struct { SnapshotName string `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` } -func (x *ReplicaSnapshotShallowCopyRequest) Reset() { - *x = ReplicaSnapshotShallowCopyRequest{} +func (x *ReplicaRebuildingSrcShallowCopyStartRequest) Reset() { + *x = ReplicaRebuildingSrcShallowCopyStartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[10] + mi := &file_spdkrpc_spdk_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReplicaSnapshotShallowCopyRequest) String() string { +func (x *ReplicaRebuildingSrcShallowCopyStartRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicaSnapshotShallowCopyRequest) ProtoMessage() {} +func (*ReplicaRebuildingSrcShallowCopyStartRequest) ProtoMessage() {} -func (x *ReplicaSnapshotShallowCopyRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[10] +func (x *ReplicaRebuildingSrcShallowCopyStartRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -832,51 +879,50 @@ func (x *ReplicaSnapshotShallowCopyRequest) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ReplicaSnapshotShallowCopyRequest.ProtoReflect.Descriptor instead. -func (*ReplicaSnapshotShallowCopyRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{10} +// Deprecated: Use ReplicaRebuildingSrcShallowCopyStartRequest.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingSrcShallowCopyStartRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{11} } -func (x *ReplicaSnapshotShallowCopyRequest) GetName() string { +func (x *ReplicaRebuildingSrcShallowCopyStartRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *ReplicaSnapshotShallowCopyRequest) GetSnapshotName() string { +func (x *ReplicaRebuildingSrcShallowCopyStartRequest) GetSnapshotName() string { if x != nil { return x.SnapshotName } return "" } -type ReplicaRebuildingDstStartRequest struct { +type ReplicaRebuildingSrcShallowCopyStartResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - ExposeRequired bool `protobuf:"varint,2,opt,name=expose_required,json=exposeRequired,proto3" json:"expose_required,omitempty"` + ShallowCopyOpId uint32 `protobuf:"varint,1,opt,name=shallow_copy_op_id,json=shallowCopyOpId,proto3" json:"shallow_copy_op_id,omitempty"` } -func (x *ReplicaRebuildingDstStartRequest) Reset() { - *x = ReplicaRebuildingDstStartRequest{} +func (x *ReplicaRebuildingSrcShallowCopyStartResponse) Reset() { + *x = ReplicaRebuildingSrcShallowCopyStartResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[11] + mi := &file_spdkrpc_spdk_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReplicaRebuildingDstStartRequest) String() string { +func (x *ReplicaRebuildingSrcShallowCopyStartResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicaRebuildingDstStartRequest) ProtoMessage() {} +func (*ReplicaRebuildingSrcShallowCopyStartResponse) ProtoMessage() {} -func (x *ReplicaRebuildingDstStartRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[11] +func (x *ReplicaRebuildingSrcShallowCopyStartResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -887,50 +933,46 @@ func (x *ReplicaRebuildingDstStartRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicaRebuildingDstStartRequest.ProtoReflect.Descriptor instead. -func (*ReplicaRebuildingDstStartRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{11} -} - -func (x *ReplicaRebuildingDstStartRequest) GetName() string { - if x != nil { - return x.Name - } - return "" +// Deprecated: Use ReplicaRebuildingSrcShallowCopyStartResponse.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingSrcShallowCopyStartResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{12} } -func (x *ReplicaRebuildingDstStartRequest) GetExposeRequired() bool { +func (x *ReplicaRebuildingSrcShallowCopyStartResponse) GetShallowCopyOpId() uint32 { if x != nil { - return x.ExposeRequired + return x.ShallowCopyOpId } - return false + return 0 } -type ReplicaRebuildingDstStartResponse struct { +type ReplicaRebuildingSrcShallowCopyCheckRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + DstReplicaName string `protobuf:"bytes,2,opt,name=dst_replica_name,json=dstReplicaName,proto3" json:"dst_replica_name,omitempty"` + SnapshotName string `protobuf:"bytes,3,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` + ShallowCopyOpId uint32 `protobuf:"varint,4,opt,name=shallow_copy_op_id,json=shallowCopyOpId,proto3" json:"shallow_copy_op_id,omitempty"` } -func (x *ReplicaRebuildingDstStartResponse) Reset() { - *x = ReplicaRebuildingDstStartResponse{} +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) Reset() { + *x = ReplicaRebuildingSrcShallowCopyCheckRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[12] + mi := &file_spdkrpc_spdk_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReplicaRebuildingDstStartResponse) String() string { +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicaRebuildingDstStartResponse) ProtoMessage() {} +func (*ReplicaRebuildingSrcShallowCopyCheckRequest) ProtoMessage() {} -func (x *ReplicaRebuildingDstStartResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[12] +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -941,44 +983,67 @@ func (x *ReplicaRebuildingDstStartResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ReplicaRebuildingDstStartResponse.ProtoReflect.Descriptor instead. -func (*ReplicaRebuildingDstStartResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{12} +// Deprecated: Use ReplicaRebuildingSrcShallowCopyCheckRequest.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingSrcShallowCopyCheckRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{13} } -func (x *ReplicaRebuildingDstStartResponse) GetAddress() string { +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) GetName() string { if x != nil { - return x.Address + return x.Name } return "" } -type ReplicaRebuildingDstFinishRequest struct { +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) GetDstReplicaName() string { + if x != nil { + return x.DstReplicaName + } + return "" +} + +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) GetSnapshotName() string { + if x != nil { + return x.SnapshotName + } + return "" +} + +func (x *ReplicaRebuildingSrcShallowCopyCheckRequest) GetShallowCopyOpId() uint32 { + if x != nil { + return x.ShallowCopyOpId + } + return 0 +} + +type ReplicaRebuildingSrcShallowCopyCheckResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - UnexposeRequired bool `protobuf:"varint,2,opt,name=unexpose_required,json=unexposeRequired,proto3" json:"unexpose_required,omitempty"` + State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + CopiedClusters uint64 `protobuf:"varint,2,opt,name=copied_clusters,json=copiedClusters,proto3" json:"copied_clusters,omitempty"` + TotalClusters uint64 `protobuf:"varint,3,opt,name=total_clusters,json=totalClusters,proto3" json:"total_clusters,omitempty"` + ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` } -func (x *ReplicaRebuildingDstFinishRequest) Reset() { - *x = ReplicaRebuildingDstFinishRequest{} +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) Reset() { + *x = ReplicaRebuildingSrcShallowCopyCheckResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[13] + mi := &file_spdkrpc_spdk_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReplicaRebuildingDstFinishRequest) String() string { +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicaRebuildingDstFinishRequest) ProtoMessage() {} +func (*ReplicaRebuildingSrcShallowCopyCheckResponse) ProtoMessage() {} -func (x *ReplicaRebuildingDstFinishRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[13] +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -989,65 +1054,69 @@ func (x *ReplicaRebuildingDstFinishRequest) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ReplicaRebuildingDstFinishRequest.ProtoReflect.Descriptor instead. -func (*ReplicaRebuildingDstFinishRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{13} +// Deprecated: Use ReplicaRebuildingSrcShallowCopyCheckResponse.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingSrcShallowCopyCheckResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{14} } -func (x *ReplicaRebuildingDstFinishRequest) GetName() string { +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) GetState() string { if x != nil { - return x.Name + return x.State } return "" } -func (x *ReplicaRebuildingDstFinishRequest) GetUnexposeRequired() bool { +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) GetCopiedClusters() uint64 { if x != nil { - return x.UnexposeRequired + return x.CopiedClusters } - return false + return 0 } -type Engine struct { +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) GetTotalClusters() uint64 { + if x != nil { + return x.TotalClusters + } + return 0 +} + +func (x *ReplicaRebuildingSrcShallowCopyCheckResponse) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg + } + return "" +} + +type ReplicaRebuildingDstStartRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - VolumeName string `protobuf:"bytes,2,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"` - SpecSize uint64 `protobuf:"varint,3,opt,name=spec_size,json=specSize,proto3" json:"spec_size,omitempty"` - ActualSize uint64 `protobuf:"varint,4,opt,name=actual_size,json=actualSize,proto3" json:"actual_size,omitempty"` - Ip string `protobuf:"bytes,5,opt,name=ip,proto3" json:"ip,omitempty"` - Port int32 `protobuf:"varint,6,opt,name=port,proto3" json:"port,omitempty"` - ReplicaAddressMap map[string]string `protobuf:"bytes,7,rep,name=replica_address_map,json=replicaAddressMap,proto3" json:"replica_address_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - ReplicaModeMap map[string]ReplicaMode `protobuf:"bytes,8,rep,name=replica_mode_map,json=replicaModeMap,proto3" json:"replica_mode_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=spdkrpc.ReplicaMode"` - Head *Lvol `protobuf:"bytes,9,opt,name=head,proto3" json:"head,omitempty"` - Snapshots map[string]*Lvol `protobuf:"bytes,10,rep,name=snapshots,proto3" json:"snapshots,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Frontend string `protobuf:"bytes,11,opt,name=frontend,proto3" json:"frontend,omitempty"` - Endpoint string `protobuf:"bytes,12,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - State string `protobuf:"bytes,13,opt,name=state,proto3" json:"state,omitempty"` - ErrorMsg string `protobuf:"bytes,14,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` - TargetIp string `protobuf:"bytes,15,opt,name=target_ip,json=targetIp,proto3" json:"target_ip,omitempty"` - TargetPort int32 `protobuf:"varint,16,opt,name=target_port,json=targetPort,proto3" json:"target_port,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + SrcReplicaName string `protobuf:"bytes,2,opt,name=src_replica_name,json=srcReplicaName,proto3" json:"src_replica_name,omitempty"` + SrcReplicaAddress string `protobuf:"bytes,3,opt,name=src_replica_address,json=srcReplicaAddress,proto3" json:"src_replica_address,omitempty"` + ExternalSnapshotName string `protobuf:"bytes,4,opt,name=external_snapshot_name,json=externalSnapshotName,proto3" json:"external_snapshot_name,omitempty"` + ExternalSnapshotAddress string `protobuf:"bytes,5,opt,name=external_snapshot_address,json=externalSnapshotAddress,proto3" json:"external_snapshot_address,omitempty"` + RebuildingSnapshotList []*Lvol `protobuf:"bytes,6,rep,name=rebuilding_snapshot_list,json=rebuildingSnapshotList,proto3" json:"rebuilding_snapshot_list,omitempty"` } -func (x *Engine) Reset() { - *x = Engine{} +func (x *ReplicaRebuildingDstStartRequest) Reset() { + *x = ReplicaRebuildingDstStartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[14] + mi := &file_spdkrpc_spdk_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Engine) String() string { +func (x *ReplicaRebuildingDstStartRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Engine) ProtoMessage() {} +func (*ReplicaRebuildingDstStartRequest) ProtoMessage() {} -func (x *Engine) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[14] +func (x *ReplicaRebuildingDstStartRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1058,89 +1127,532 @@ func (x *Engine) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Engine.ProtoReflect.Descriptor instead. -func (*Engine) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{14} +// Deprecated: Use ReplicaRebuildingDstStartRequest.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstStartRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{15} } -func (x *Engine) GetName() string { +func (x *ReplicaRebuildingDstStartRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *Engine) GetVolumeName() string { +func (x *ReplicaRebuildingDstStartRequest) GetSrcReplicaName() string { if x != nil { - return x.VolumeName + return x.SrcReplicaName } return "" } -func (x *Engine) GetSpecSize() uint64 { - if x != nil { - return x.SpecSize - } - return 0 -} - -func (x *Engine) GetActualSize() uint64 { +func (x *ReplicaRebuildingDstStartRequest) GetSrcReplicaAddress() string { if x != nil { - return x.ActualSize + return x.SrcReplicaAddress } - return 0 + return "" } -func (x *Engine) GetIp() string { +func (x *ReplicaRebuildingDstStartRequest) GetExternalSnapshotName() string { if x != nil { - return x.Ip + return x.ExternalSnapshotName } return "" } -func (x *Engine) GetPort() int32 { +func (x *ReplicaRebuildingDstStartRequest) GetExternalSnapshotAddress() string { if x != nil { - return x.Port + return x.ExternalSnapshotAddress } - return 0 + return "" } -func (x *Engine) GetReplicaAddressMap() map[string]string { +func (x *ReplicaRebuildingDstStartRequest) GetRebuildingSnapshotList() []*Lvol { if x != nil { - return x.ReplicaAddressMap + return x.RebuildingSnapshotList } return nil } -func (x *Engine) GetReplicaModeMap() map[string]ReplicaMode { - if x != nil { - return x.ReplicaModeMap - } - return nil -} +type ReplicaRebuildingDstStartResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *Engine) GetHead() *Lvol { - if x != nil { - return x.Head - } - return nil + DstHeadLvolAddress string `protobuf:"bytes,1,opt,name=dst_head_lvol_address,json=dstHeadLvolAddress,proto3" json:"dst_head_lvol_address,omitempty"` } -func (x *Engine) GetSnapshots() map[string]*Lvol { - if x != nil { - return x.Snapshots +func (x *ReplicaRebuildingDstStartResponse) Reset() { + *x = ReplicaRebuildingDstStartResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *Engine) GetFrontend() string { - if x != nil { - return x.Frontend - } - return "" +func (x *ReplicaRebuildingDstStartResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Engine) GetEndpoint() string { +func (*ReplicaRebuildingDstStartResponse) ProtoMessage() {} + +func (x *ReplicaRebuildingDstStartResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingDstStartResponse.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstStartResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{16} +} + +func (x *ReplicaRebuildingDstStartResponse) GetDstHeadLvolAddress() string { + if x != nil { + return x.DstHeadLvolAddress + } + return "" +} + +type ReplicaRebuildingDstFinishRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ReplicaRebuildingDstFinishRequest) Reset() { + *x = ReplicaRebuildingDstFinishRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicaRebuildingDstFinishRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicaRebuildingDstFinishRequest) ProtoMessage() {} + +func (x *ReplicaRebuildingDstFinishRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingDstFinishRequest.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstFinishRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{17} +} + +func (x *ReplicaRebuildingDstFinishRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type ReplicaRebuildingDstShallowCopyStartRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + SnapshotName string `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` +} + +func (x *ReplicaRebuildingDstShallowCopyStartRequest) Reset() { + *x = ReplicaRebuildingDstShallowCopyStartRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicaRebuildingDstShallowCopyStartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicaRebuildingDstShallowCopyStartRequest) ProtoMessage() {} + +func (x *ReplicaRebuildingDstShallowCopyStartRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingDstShallowCopyStartRequest.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstShallowCopyStartRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{18} +} + +func (x *ReplicaRebuildingDstShallowCopyStartRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ReplicaRebuildingDstShallowCopyStartRequest) GetSnapshotName() string { + if x != nil { + return x.SnapshotName + } + return "" +} + +type ReplicaRebuildingDstShallowCopyCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ReplicaRebuildingDstShallowCopyCheckRequest) Reset() { + *x = ReplicaRebuildingDstShallowCopyCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicaRebuildingDstShallowCopyCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicaRebuildingDstShallowCopyCheckRequest) ProtoMessage() {} + +func (x *ReplicaRebuildingDstShallowCopyCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingDstShallowCopyCheckRequest.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstShallowCopyCheckRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{19} +} + +func (x *ReplicaRebuildingDstShallowCopyCheckRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type ReplicaRebuildingDstShallowCopyCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SrcReplicaName string `protobuf:"bytes,1,opt,name=src_replica_name,json=srcReplicaName,proto3" json:"src_replica_name,omitempty"` + SrcReplicaAddress string `protobuf:"bytes,2,opt,name=src_replica_address,json=srcReplicaAddress,proto3" json:"src_replica_address,omitempty"` + SnapshotName string `protobuf:"bytes,3,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` + State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` + Progress uint32 `protobuf:"varint,5,opt,name=progress,proto3" json:"progress,omitempty"` + TotalState string `protobuf:"bytes,6,opt,name=total_state,json=totalState,proto3" json:"total_state,omitempty"` + TotalProgress uint32 `protobuf:"varint,7,opt,name=total_progress,json=totalProgress,proto3" json:"total_progress,omitempty"` + Error string `protobuf:"bytes,8,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) Reset() { + *x = ReplicaRebuildingDstShallowCopyCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicaRebuildingDstShallowCopyCheckResponse) ProtoMessage() {} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingDstShallowCopyCheckResponse.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstShallowCopyCheckResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{20} +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetSrcReplicaName() string { + if x != nil { + return x.SrcReplicaName + } + return "" +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetSrcReplicaAddress() string { + if x != nil { + return x.SrcReplicaAddress + } + return "" +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetSnapshotName() string { + if x != nil { + return x.SnapshotName + } + return "" +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetProgress() uint32 { + if x != nil { + return x.Progress + } + return 0 +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetTotalState() string { + if x != nil { + return x.TotalState + } + return "" +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetTotalProgress() uint32 { + if x != nil { + return x.TotalProgress + } + return 0 +} + +func (x *ReplicaRebuildingDstShallowCopyCheckResponse) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +type ReplicaRebuildingDstSnapshotRevertResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DstRebuildingLvolAddress string `protobuf:"bytes,1,opt,name=dst_rebuilding_lvol_address,json=dstRebuildingLvolAddress,proto3" json:"dst_rebuilding_lvol_address,omitempty"` +} + +func (x *ReplicaRebuildingDstSnapshotRevertResponse) Reset() { + *x = ReplicaRebuildingDstSnapshotRevertResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicaRebuildingDstSnapshotRevertResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicaRebuildingDstSnapshotRevertResponse) ProtoMessage() {} + +func (x *ReplicaRebuildingDstSnapshotRevertResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicaRebuildingDstSnapshotRevertResponse.ProtoReflect.Descriptor instead. +func (*ReplicaRebuildingDstSnapshotRevertResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{21} +} + +func (x *ReplicaRebuildingDstSnapshotRevertResponse) GetDstRebuildingLvolAddress() string { + if x != nil { + return x.DstRebuildingLvolAddress + } + return "" +} + +type Engine struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + VolumeName string `protobuf:"bytes,2,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"` + SpecSize uint64 `protobuf:"varint,3,opt,name=spec_size,json=specSize,proto3" json:"spec_size,omitempty"` + ActualSize uint64 `protobuf:"varint,4,opt,name=actual_size,json=actualSize,proto3" json:"actual_size,omitempty"` + Ip string `protobuf:"bytes,5,opt,name=ip,proto3" json:"ip,omitempty"` + Port int32 `protobuf:"varint,6,opt,name=port,proto3" json:"port,omitempty"` + ReplicaAddressMap map[string]string `protobuf:"bytes,7,rep,name=replica_address_map,json=replicaAddressMap,proto3" json:"replica_address_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ReplicaModeMap map[string]ReplicaMode `protobuf:"bytes,8,rep,name=replica_mode_map,json=replicaModeMap,proto3" json:"replica_mode_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=spdkrpc.ReplicaMode"` + Head *Lvol `protobuf:"bytes,9,opt,name=head,proto3" json:"head,omitempty"` + Snapshots map[string]*Lvol `protobuf:"bytes,10,rep,name=snapshots,proto3" json:"snapshots,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Frontend string `protobuf:"bytes,11,opt,name=frontend,proto3" json:"frontend,omitempty"` + Endpoint string `protobuf:"bytes,12,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + State string `protobuf:"bytes,13,opt,name=state,proto3" json:"state,omitempty"` + ErrorMsg string `protobuf:"bytes,14,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` + TargetIp string `protobuf:"bytes,15,opt,name=target_ip,json=targetIp,proto3" json:"target_ip,omitempty"` + TargetPort int32 `protobuf:"varint,16,opt,name=target_port,json=targetPort,proto3" json:"target_port,omitempty"` +} + +func (x *Engine) Reset() { + *x = Engine{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Engine) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Engine) ProtoMessage() {} + +func (x *Engine) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Engine.ProtoReflect.Descriptor instead. +func (*Engine) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{22} +} + +func (x *Engine) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Engine) GetVolumeName() string { + if x != nil { + return x.VolumeName + } + return "" +} + +func (x *Engine) GetSpecSize() uint64 { + if x != nil { + return x.SpecSize + } + return 0 +} + +func (x *Engine) GetActualSize() uint64 { + if x != nil { + return x.ActualSize + } + return 0 +} + +func (x *Engine) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +func (x *Engine) GetPort() int32 { + if x != nil { + return x.Port + } + return 0 +} + +func (x *Engine) GetReplicaAddressMap() map[string]string { + if x != nil { + return x.ReplicaAddressMap + } + return nil +} + +func (x *Engine) GetReplicaModeMap() map[string]ReplicaMode { + if x != nil { + return x.ReplicaModeMap + } + return nil +} + +func (x *Engine) GetHead() *Lvol { + if x != nil { + return x.Head + } + return nil +} + +func (x *Engine) GetSnapshots() map[string]*Lvol { + if x != nil { + return x.Snapshots + } + return nil +} + +func (x *Engine) GetFrontend() string { + if x != nil { + return x.Frontend + } + return "" +} + +func (x *Engine) GetEndpoint() string { if x != nil { return x.Endpoint } @@ -1194,7 +1706,7 @@ type EngineCreateRequest struct { func (x *EngineCreateRequest) Reset() { *x = EngineCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[15] + mi := &file_spdkrpc_spdk_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1207,7 +1719,7 @@ func (x *EngineCreateRequest) String() string { func (*EngineCreateRequest) ProtoMessage() {} func (x *EngineCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[15] + mi := &file_spdkrpc_spdk_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1220,7 +1732,7 @@ func (x *EngineCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineCreateRequest.ProtoReflect.Descriptor instead. func (*EngineCreateRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{15} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{23} } func (x *EngineCreateRequest) GetName() string { @@ -1297,7 +1809,7 @@ type EngineDeleteRequest struct { func (x *EngineDeleteRequest) Reset() { *x = EngineDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[16] + mi := &file_spdkrpc_spdk_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1310,7 +1822,7 @@ func (x *EngineDeleteRequest) String() string { func (*EngineDeleteRequest) ProtoMessage() {} func (x *EngineDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[16] + mi := &file_spdkrpc_spdk_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1323,7 +1835,7 @@ func (x *EngineDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineDeleteRequest.ProtoReflect.Descriptor instead. func (*EngineDeleteRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{16} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{24} } func (x *EngineDeleteRequest) GetName() string { @@ -1344,7 +1856,7 @@ type EngineGetRequest struct { func (x *EngineGetRequest) Reset() { *x = EngineGetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[17] + mi := &file_spdkrpc_spdk_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1357,7 +1869,7 @@ func (x *EngineGetRequest) String() string { func (*EngineGetRequest) ProtoMessage() {} func (x *EngineGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[17] + mi := &file_spdkrpc_spdk_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1370,7 +1882,7 @@ func (x *EngineGetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineGetRequest.ProtoReflect.Descriptor instead. func (*EngineGetRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{17} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{25} } func (x *EngineGetRequest) GetName() string { @@ -1391,7 +1903,7 @@ type EngineSuspendRequest struct { func (x *EngineSuspendRequest) Reset() { *x = EngineSuspendRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[18] + mi := &file_spdkrpc_spdk_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1404,7 +1916,7 @@ func (x *EngineSuspendRequest) String() string { func (*EngineSuspendRequest) ProtoMessage() {} func (x *EngineSuspendRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[18] + mi := &file_spdkrpc_spdk_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1417,7 +1929,7 @@ func (x *EngineSuspendRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineSuspendRequest.ProtoReflect.Descriptor instead. func (*EngineSuspendRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{18} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{26} } func (x *EngineSuspendRequest) GetName() string { @@ -1438,7 +1950,7 @@ type EngineResumeRequest struct { func (x *EngineResumeRequest) Reset() { *x = EngineResumeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[19] + mi := &file_spdkrpc_spdk_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1451,7 +1963,7 @@ func (x *EngineResumeRequest) String() string { func (*EngineResumeRequest) ProtoMessage() {} func (x *EngineResumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[19] + mi := &file_spdkrpc_spdk_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1464,7 +1976,7 @@ func (x *EngineResumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineResumeRequest.ProtoReflect.Descriptor instead. func (*EngineResumeRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{19} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{27} } func (x *EngineResumeRequest) GetName() string { @@ -1486,7 +1998,7 @@ type EngineSwitchOverTargetRequest struct { func (x *EngineSwitchOverTargetRequest) Reset() { *x = EngineSwitchOverTargetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[20] + mi := &file_spdkrpc_spdk_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +2011,7 @@ func (x *EngineSwitchOverTargetRequest) String() string { func (*EngineSwitchOverTargetRequest) ProtoMessage() {} func (x *EngineSwitchOverTargetRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[20] + mi := &file_spdkrpc_spdk_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1512,7 +2024,7 @@ func (x *EngineSwitchOverTargetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineSwitchOverTargetRequest.ProtoReflect.Descriptor instead. func (*EngineSwitchOverTargetRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{20} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{28} } func (x *EngineSwitchOverTargetRequest) GetName() string { @@ -1540,7 +2052,7 @@ type EngineDeleteTargetRequest struct { func (x *EngineDeleteTargetRequest) Reset() { *x = EngineDeleteTargetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[21] + mi := &file_spdkrpc_spdk_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1553,7 +2065,7 @@ func (x *EngineDeleteTargetRequest) String() string { func (*EngineDeleteTargetRequest) ProtoMessage() {} func (x *EngineDeleteTargetRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[21] + mi := &file_spdkrpc_spdk_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1566,7 +2078,7 @@ func (x *EngineDeleteTargetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineDeleteTargetRequest.ProtoReflect.Descriptor instead. func (*EngineDeleteTargetRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{21} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{29} } func (x *EngineDeleteTargetRequest) GetName() string { @@ -1587,7 +2099,7 @@ type EngineListResponse struct { func (x *EngineListResponse) Reset() { *x = EngineListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[22] + mi := &file_spdkrpc_spdk_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1600,7 +2112,7 @@ func (x *EngineListResponse) String() string { func (*EngineListResponse) ProtoMessage() {} func (x *EngineListResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[22] + mi := &file_spdkrpc_spdk_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1613,17 +2125,174 @@ func (x *EngineListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineListResponse.ProtoReflect.Descriptor instead. func (*EngineListResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{22} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{30} +} + +func (x *EngineListResponse) GetEngines() map[string]*Engine { + if x != nil { + return x.Engines + } + return nil +} + +type EngineReplicaAddRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EngineName string `protobuf:"bytes,1,opt,name=engine_name,json=engineName,proto3" json:"engine_name,omitempty"` + ReplicaName string `protobuf:"bytes,2,opt,name=replica_name,json=replicaName,proto3" json:"replica_name,omitempty"` + ReplicaAddress string `protobuf:"bytes,3,opt,name=replica_address,json=replicaAddress,proto3" json:"replica_address,omitempty"` +} + +func (x *EngineReplicaAddRequest) Reset() { + *x = EngineReplicaAddRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineReplicaAddRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineReplicaAddRequest) ProtoMessage() {} + +func (x *EngineReplicaAddRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EngineReplicaAddRequest.ProtoReflect.Descriptor instead. +func (*EngineReplicaAddRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{31} +} + +func (x *EngineReplicaAddRequest) GetEngineName() string { + if x != nil { + return x.EngineName + } + return "" +} + +func (x *EngineReplicaAddRequest) GetReplicaName() string { + if x != nil { + return x.ReplicaName + } + return "" +} + +func (x *EngineReplicaAddRequest) GetReplicaAddress() string { + if x != nil { + return x.ReplicaAddress + } + return "" +} + +type EngineReplicaListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EngineName string `protobuf:"bytes,1,opt,name=engine_name,json=engineName,proto3" json:"engine_name,omitempty"` +} + +func (x *EngineReplicaListRequest) Reset() { + *x = EngineReplicaListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineReplicaListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineReplicaListRequest) ProtoMessage() {} + +func (x *EngineReplicaListRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EngineReplicaListRequest.ProtoReflect.Descriptor instead. +func (*EngineReplicaListRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{32} +} + +func (x *EngineReplicaListRequest) GetEngineName() string { + if x != nil { + return x.EngineName + } + return "" +} + +type EngineReplicaListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Replicas map[string]*Replica `protobuf:"bytes,1,rep,name=replicas,proto3" json:"replicas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *EngineReplicaListResponse) Reset() { + *x = EngineReplicaListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spdkrpc_spdk_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineReplicaListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineReplicaListResponse) ProtoMessage() {} + +func (x *EngineReplicaListResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (x *EngineListResponse) GetEngines() map[string]*Engine { +// Deprecated: Use EngineReplicaListResponse.ProtoReflect.Descriptor instead. +func (*EngineReplicaListResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{33} +} + +func (x *EngineReplicaListResponse) GetReplicas() map[string]*Replica { if x != nil { - return x.Engines + return x.Replicas } return nil } -type EngineReplicaAddRequest struct { +type EngineReplicaDeleteRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1633,23 +2302,23 @@ type EngineReplicaAddRequest struct { ReplicaAddress string `protobuf:"bytes,3,opt,name=replica_address,json=replicaAddress,proto3" json:"replica_address,omitempty"` } -func (x *EngineReplicaAddRequest) Reset() { - *x = EngineReplicaAddRequest{} +func (x *EngineReplicaDeleteRequest) Reset() { + *x = EngineReplicaDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[23] + mi := &file_spdkrpc_spdk_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EngineReplicaAddRequest) String() string { +func (x *EngineReplicaDeleteRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EngineReplicaAddRequest) ProtoMessage() {} +func (*EngineReplicaDeleteRequest) ProtoMessage() {} -func (x *EngineReplicaAddRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[23] +func (x *EngineReplicaDeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1660,57 +2329,58 @@ func (x *EngineReplicaAddRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EngineReplicaAddRequest.ProtoReflect.Descriptor instead. -func (*EngineReplicaAddRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{23} +// Deprecated: Use EngineReplicaDeleteRequest.ProtoReflect.Descriptor instead. +func (*EngineReplicaDeleteRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{34} } -func (x *EngineReplicaAddRequest) GetEngineName() string { +func (x *EngineReplicaDeleteRequest) GetEngineName() string { if x != nil { return x.EngineName } return "" } -func (x *EngineReplicaAddRequest) GetReplicaName() string { +func (x *EngineReplicaDeleteRequest) GetReplicaName() string { if x != nil { return x.ReplicaName } return "" } -func (x *EngineReplicaAddRequest) GetReplicaAddress() string { +func (x *EngineReplicaDeleteRequest) GetReplicaAddress() string { if x != nil { return x.ReplicaAddress } return "" } -type EngineReplicaListRequest struct { +type EngineReplicaRebuildStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EngineName string `protobuf:"bytes,1,opt,name=engine_name,json=engineName,proto3" json:"engine_name,omitempty"` + EngineName string `protobuf:"bytes,1,opt,name=engine_name,json=engineName,proto3" json:"engine_name,omitempty"` + ReplicaName string `protobuf:"bytes,2,opt,name=replica_name,json=replicaName,proto3" json:"replica_name,omitempty"` } -func (x *EngineReplicaListRequest) Reset() { - *x = EngineReplicaListRequest{} +func (x *EngineReplicaRebuildStatusRequest) Reset() { + *x = EngineReplicaRebuildStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[24] + mi := &file_spdkrpc_spdk_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EngineReplicaListRequest) String() string { +func (x *EngineReplicaRebuildStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EngineReplicaListRequest) ProtoMessage() {} +func (*EngineReplicaRebuildStatusRequest) ProtoMessage() {} -func (x *EngineReplicaListRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[24] +func (x *EngineReplicaRebuildStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1721,43 +2391,56 @@ func (x *EngineReplicaListRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EngineReplicaListRequest.ProtoReflect.Descriptor instead. -func (*EngineReplicaListRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{24} +// Deprecated: Use EngineReplicaRebuildStatusRequest.ProtoReflect.Descriptor instead. +func (*EngineReplicaRebuildStatusRequest) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{35} } -func (x *EngineReplicaListRequest) GetEngineName() string { +func (x *EngineReplicaRebuildStatusRequest) GetEngineName() string { if x != nil { return x.EngineName } return "" } -type EngineReplicaListResponse struct { +func (x *EngineReplicaRebuildStatusRequest) GetReplicaName() string { + if x != nil { + return x.ReplicaName + } + return "" +} + +type EngineReplicaRebuildStatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Replicas map[string]*Replica `protobuf:"bytes,1,rep,name=replicas,proto3" json:"replicas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ReplicaName string `protobuf:"bytes,1,opt,name=replica_name,json=replicaName,proto3" json:"replica_name,omitempty"` + SnapshotName string `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` + State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Progress int32 `protobuf:"varint,4,opt,name=progress,proto3" json:"progress,omitempty"` + Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` + SrcReplicaName string `protobuf:"bytes,6,opt,name=src_replica_name,json=srcReplicaName,proto3" json:"src_replica_name,omitempty"` + SrcReplicaAddress string `protobuf:"bytes,7,opt,name=src_replica_address,json=srcReplicaAddress,proto3" json:"src_replica_address,omitempty"` } -func (x *EngineReplicaListResponse) Reset() { - *x = EngineReplicaListResponse{} +func (x *EngineReplicaRebuildStatusResponse) Reset() { + *x = EngineReplicaRebuildStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[25] + mi := &file_spdkrpc_spdk_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EngineReplicaListResponse) String() string { +func (x *EngineReplicaRebuildStatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EngineReplicaListResponse) ProtoMessage() {} +func (*EngineReplicaRebuildStatusResponse) ProtoMessage() {} -func (x *EngineReplicaListResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[25] +func (x *EngineReplicaRebuildStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_spdkrpc_spdk_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1768,77 +2451,56 @@ func (x *EngineReplicaListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EngineReplicaListResponse.ProtoReflect.Descriptor instead. -func (*EngineReplicaListResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{25} +// Deprecated: Use EngineReplicaRebuildStatusResponse.ProtoReflect.Descriptor instead. +func (*EngineReplicaRebuildStatusResponse) Descriptor() ([]byte, []int) { + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{36} } -func (x *EngineReplicaListResponse) GetReplicas() map[string]*Replica { +func (x *EngineReplicaRebuildStatusResponse) GetReplicaName() string { if x != nil { - return x.Replicas + return x.ReplicaName } - return nil -} - -type EngineReplicaDeleteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EngineName string `protobuf:"bytes,1,opt,name=engine_name,json=engineName,proto3" json:"engine_name,omitempty"` - ReplicaName string `protobuf:"bytes,2,opt,name=replica_name,json=replicaName,proto3" json:"replica_name,omitempty"` - ReplicaAddress string `protobuf:"bytes,3,opt,name=replica_address,json=replicaAddress,proto3" json:"replica_address,omitempty"` + return "" } -func (x *EngineReplicaDeleteRequest) Reset() { - *x = EngineReplicaDeleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *EngineReplicaRebuildStatusResponse) GetSnapshotName() string { + if x != nil { + return x.SnapshotName } + return "" } -func (x *EngineReplicaDeleteRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EngineReplicaDeleteRequest) ProtoMessage() {} - -func (x *EngineReplicaDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *EngineReplicaRebuildStatusResponse) GetState() string { + if x != nil { + return x.State } - return mi.MessageOf(x) + return "" } -// Deprecated: Use EngineReplicaDeleteRequest.ProtoReflect.Descriptor instead. -func (*EngineReplicaDeleteRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{26} +func (x *EngineReplicaRebuildStatusResponse) GetProgress() int32 { + if x != nil { + return x.Progress + } + return 0 } -func (x *EngineReplicaDeleteRequest) GetEngineName() string { +func (x *EngineReplicaRebuildStatusResponse) GetError() string { if x != nil { - return x.EngineName + return x.Error } return "" } -func (x *EngineReplicaDeleteRequest) GetReplicaName() string { +func (x *EngineReplicaRebuildStatusResponse) GetSrcReplicaName() string { if x != nil { - return x.ReplicaName + return x.SrcReplicaName } return "" } -func (x *EngineReplicaDeleteRequest) GetReplicaAddress() string { +func (x *EngineReplicaRebuildStatusResponse) GetSrcReplicaAddress() string { if x != nil { - return x.ReplicaAddress + return x.SrcReplicaAddress } return "" } @@ -1857,7 +2519,7 @@ type SnapshotRequest struct { func (x *SnapshotRequest) Reset() { *x = SnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[27] + mi := &file_spdkrpc_spdk_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1870,7 +2532,7 @@ func (x *SnapshotRequest) String() string { func (*SnapshotRequest) ProtoMessage() {} func (x *SnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[27] + mi := &file_spdkrpc_spdk_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1883,7 +2545,7 @@ func (x *SnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SnapshotRequest.ProtoReflect.Descriptor instead. func (*SnapshotRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{27} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{37} } func (x *SnapshotRequest) GetName() string { @@ -1925,7 +2587,7 @@ type SnapshotResponse struct { func (x *SnapshotResponse) Reset() { *x = SnapshotResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[28] + mi := &file_spdkrpc_spdk_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1938,7 +2600,7 @@ func (x *SnapshotResponse) String() string { func (*SnapshotResponse) ProtoMessage() {} func (x *SnapshotResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[28] + mi := &file_spdkrpc_spdk_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1951,7 +2613,7 @@ func (x *SnapshotResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SnapshotResponse.ProtoReflect.Descriptor instead. func (*SnapshotResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{28} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{38} } func (x *SnapshotResponse) GetSnapshotName() string { @@ -1980,7 +2642,7 @@ type VersionOutput struct { func (x *VersionOutput) Reset() { *x = VersionOutput{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[29] + mi := &file_spdkrpc_spdk_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2655,7 @@ func (x *VersionOutput) String() string { func (*VersionOutput) ProtoMessage() {} func (x *VersionOutput) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[29] + mi := &file_spdkrpc_spdk_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2668,7 @@ func (x *VersionOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionOutput.ProtoReflect.Descriptor instead. func (*VersionOutput) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{29} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{39} } func (x *VersionOutput) GetVersion() string { @@ -2083,7 +2745,7 @@ type VersionDetailGetReply struct { func (x *VersionDetailGetReply) Reset() { *x = VersionDetailGetReply{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[30] + mi := &file_spdkrpc_spdk_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2096,7 +2758,7 @@ func (x *VersionDetailGetReply) String() string { func (*VersionDetailGetReply) ProtoMessage() {} func (x *VersionDetailGetReply) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[30] + mi := &file_spdkrpc_spdk_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2109,7 +2771,7 @@ func (x *VersionDetailGetReply) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionDetailGetReply.ProtoReflect.Descriptor instead. func (*VersionDetailGetReply) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{30} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{40} } func (x *VersionDetailGetReply) GetVersion() *VersionOutput { @@ -2143,7 +2805,7 @@ type BackupCreateRequest struct { func (x *BackupCreateRequest) Reset() { *x = BackupCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[31] + mi := &file_spdkrpc_spdk_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2156,7 +2818,7 @@ func (x *BackupCreateRequest) String() string { func (*BackupCreateRequest) ProtoMessage() {} func (x *BackupCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[31] + mi := &file_spdkrpc_spdk_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2169,7 +2831,7 @@ func (x *BackupCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BackupCreateRequest.ProtoReflect.Descriptor instead. func (*BackupCreateRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{31} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{41} } func (x *BackupCreateRequest) GetSnapshotName() string { @@ -2283,7 +2945,7 @@ type BackupCreateResponse struct { func (x *BackupCreateResponse) Reset() { *x = BackupCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[32] + mi := &file_spdkrpc_spdk_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2296,7 +2958,7 @@ func (x *BackupCreateResponse) String() string { func (*BackupCreateResponse) ProtoMessage() {} func (x *BackupCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[32] + mi := &file_spdkrpc_spdk_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2309,7 +2971,7 @@ func (x *BackupCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BackupCreateResponse.ProtoReflect.Descriptor instead. func (*BackupCreateResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{32} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{42} } func (x *BackupCreateResponse) GetBackup() string { @@ -2346,7 +3008,7 @@ type BackupStatusRequest struct { func (x *BackupStatusRequest) Reset() { *x = BackupStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[33] + mi := &file_spdkrpc_spdk_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2359,7 +3021,7 @@ func (x *BackupStatusRequest) String() string { func (*BackupStatusRequest) ProtoMessage() {} func (x *BackupStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[33] + mi := &file_spdkrpc_spdk_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2372,7 +3034,7 @@ func (x *BackupStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BackupStatusRequest.ProtoReflect.Descriptor instead. func (*BackupStatusRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{33} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{43} } func (x *BackupStatusRequest) GetBackup() string { @@ -2412,7 +3074,7 @@ type BackupStatusResponse struct { func (x *BackupStatusResponse) Reset() { *x = BackupStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[34] + mi := &file_spdkrpc_spdk_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2425,7 +3087,7 @@ func (x *BackupStatusResponse) String() string { func (*BackupStatusResponse) ProtoMessage() {} func (x *BackupStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[34] + mi := &file_spdkrpc_spdk_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2438,7 +3100,7 @@ func (x *BackupStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BackupStatusResponse.ProtoReflect.Descriptor instead. func (*BackupStatusResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{34} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{44} } func (x *BackupStatusResponse) GetProgress() int32 { @@ -2498,7 +3160,7 @@ type EngineBackupRestoreRequest struct { func (x *EngineBackupRestoreRequest) Reset() { *x = EngineBackupRestoreRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[35] + mi := &file_spdkrpc_spdk_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2511,7 +3173,7 @@ func (x *EngineBackupRestoreRequest) String() string { func (*EngineBackupRestoreRequest) ProtoMessage() {} func (x *EngineBackupRestoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[35] + mi := &file_spdkrpc_spdk_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2524,7 +3186,7 @@ func (x *EngineBackupRestoreRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineBackupRestoreRequest.ProtoReflect.Descriptor instead. func (*EngineBackupRestoreRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{35} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{45} } func (x *EngineBackupRestoreRequest) GetBackupUrl() string { @@ -2573,7 +3235,7 @@ type EngineBackupRestoreResponse struct { func (x *EngineBackupRestoreResponse) Reset() { *x = EngineBackupRestoreResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[36] + mi := &file_spdkrpc_spdk_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2586,7 +3248,7 @@ func (x *EngineBackupRestoreResponse) String() string { func (*EngineBackupRestoreResponse) ProtoMessage() {} func (x *EngineBackupRestoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[36] + mi := &file_spdkrpc_spdk_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2599,7 +3261,7 @@ func (x *EngineBackupRestoreResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineBackupRestoreResponse.ProtoReflect.Descriptor instead. func (*EngineBackupRestoreResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{36} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{46} } func (x *EngineBackupRestoreResponse) GetErrors() map[string]string { @@ -2620,7 +3282,7 @@ type EngineBackupRestoreFinishRequest struct { func (x *EngineBackupRestoreFinishRequest) Reset() { *x = EngineBackupRestoreFinishRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[37] + mi := &file_spdkrpc_spdk_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2633,7 +3295,7 @@ func (x *EngineBackupRestoreFinishRequest) String() string { func (*EngineBackupRestoreFinishRequest) ProtoMessage() {} func (x *EngineBackupRestoreFinishRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[37] + mi := &file_spdkrpc_spdk_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2646,7 +3308,7 @@ func (x *EngineBackupRestoreFinishRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineBackupRestoreFinishRequest.ProtoReflect.Descriptor instead. func (*EngineBackupRestoreFinishRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{37} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{47} } func (x *EngineBackupRestoreFinishRequest) GetEngineName() string { @@ -2671,7 +3333,7 @@ type ReplicaBackupRestoreRequest struct { func (x *ReplicaBackupRestoreRequest) Reset() { *x = ReplicaBackupRestoreRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[38] + mi := &file_spdkrpc_spdk_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2684,7 +3346,7 @@ func (x *ReplicaBackupRestoreRequest) String() string { func (*ReplicaBackupRestoreRequest) ProtoMessage() {} func (x *ReplicaBackupRestoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[38] + mi := &file_spdkrpc_spdk_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2697,7 +3359,7 @@ func (x *ReplicaBackupRestoreRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicaBackupRestoreRequest.ProtoReflect.Descriptor instead. func (*ReplicaBackupRestoreRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{38} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{48} } func (x *ReplicaBackupRestoreRequest) GetBackupUrl() string { @@ -2746,7 +3408,7 @@ type RestoreStatusRequest struct { func (x *RestoreStatusRequest) Reset() { *x = RestoreStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[39] + mi := &file_spdkrpc_spdk_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2759,7 +3421,7 @@ func (x *RestoreStatusRequest) String() string { func (*RestoreStatusRequest) ProtoMessage() {} func (x *RestoreStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[39] + mi := &file_spdkrpc_spdk_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2772,7 +3434,7 @@ func (x *RestoreStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreStatusRequest.ProtoReflect.Descriptor instead. func (*RestoreStatusRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{39} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{49} } func (x *RestoreStatusRequest) GetEngineName() string { @@ -2793,7 +3455,7 @@ type ReplicaRestoreStatusRequest struct { func (x *ReplicaRestoreStatusRequest) Reset() { *x = ReplicaRestoreStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[40] + mi := &file_spdkrpc_spdk_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2806,7 +3468,7 @@ func (x *ReplicaRestoreStatusRequest) String() string { func (*ReplicaRestoreStatusRequest) ProtoMessage() {} func (x *ReplicaRestoreStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[40] + mi := &file_spdkrpc_spdk_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2819,7 +3481,7 @@ func (x *ReplicaRestoreStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicaRestoreStatusRequest.ProtoReflect.Descriptor instead. func (*ReplicaRestoreStatusRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{40} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{50} } func (x *ReplicaRestoreStatusRequest) GetReplicaName() string { @@ -2849,7 +3511,7 @@ type ReplicaRestoreStatusResponse struct { func (x *ReplicaRestoreStatusResponse) Reset() { *x = ReplicaRestoreStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[41] + mi := &file_spdkrpc_spdk_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2862,7 +3524,7 @@ func (x *ReplicaRestoreStatusResponse) String() string { func (*ReplicaRestoreStatusResponse) ProtoMessage() {} func (x *ReplicaRestoreStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[41] + mi := &file_spdkrpc_spdk_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2875,7 +3537,7 @@ func (x *ReplicaRestoreStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicaRestoreStatusResponse.ProtoReflect.Descriptor instead. func (*ReplicaRestoreStatusResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{41} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{51} } func (x *ReplicaRestoreStatusResponse) GetReplicaName() string { @@ -2959,7 +3621,7 @@ type RestoreStatusResponse struct { func (x *RestoreStatusResponse) Reset() { *x = RestoreStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[42] + mi := &file_spdkrpc_spdk_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2972,7 +3634,7 @@ func (x *RestoreStatusResponse) String() string { func (*RestoreStatusResponse) ProtoMessage() {} func (x *RestoreStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[42] + mi := &file_spdkrpc_spdk_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2985,7 +3647,7 @@ func (x *RestoreStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreStatusResponse.ProtoReflect.Descriptor instead. func (*RestoreStatusResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{42} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{52} } func (x *RestoreStatusResponse) GetStatus() map[string]*ReplicaRestoreStatusResponse { @@ -3017,7 +3679,7 @@ type Disk struct { func (x *Disk) Reset() { *x = Disk{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[43] + mi := &file_spdkrpc_spdk_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3030,7 +3692,7 @@ func (x *Disk) String() string { func (*Disk) ProtoMessage() {} func (x *Disk) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[43] + mi := &file_spdkrpc_spdk_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3043,7 +3705,7 @@ func (x *Disk) ProtoReflect() protoreflect.Message { // Deprecated: Use Disk.ProtoReflect.Descriptor instead. func (*Disk) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{43} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{53} } func (x *Disk) GetId() string { @@ -3145,7 +3807,7 @@ type DiskCreateRequest struct { func (x *DiskCreateRequest) Reset() { *x = DiskCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[44] + mi := &file_spdkrpc_spdk_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3158,7 +3820,7 @@ func (x *DiskCreateRequest) String() string { func (*DiskCreateRequest) ProtoMessage() {} func (x *DiskCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[44] + mi := &file_spdkrpc_spdk_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3171,7 +3833,7 @@ func (x *DiskCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DiskCreateRequest.ProtoReflect.Descriptor instead. func (*DiskCreateRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{44} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{54} } func (x *DiskCreateRequest) GetDiskName() string { @@ -3222,7 +3884,7 @@ type DiskGetRequest struct { func (x *DiskGetRequest) Reset() { *x = DiskGetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[45] + mi := &file_spdkrpc_spdk_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3235,7 +3897,7 @@ func (x *DiskGetRequest) String() string { func (*DiskGetRequest) ProtoMessage() {} func (x *DiskGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[45] + mi := &file_spdkrpc_spdk_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3248,7 +3910,7 @@ func (x *DiskGetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DiskGetRequest.ProtoReflect.Descriptor instead. func (*DiskGetRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{45} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{55} } func (x *DiskGetRequest) GetDiskName() string { @@ -3286,7 +3948,7 @@ type DiskDeleteRequest struct { func (x *DiskDeleteRequest) Reset() { *x = DiskDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[46] + mi := &file_spdkrpc_spdk_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3299,7 +3961,7 @@ func (x *DiskDeleteRequest) String() string { func (*DiskDeleteRequest) ProtoMessage() {} func (x *DiskDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[46] + mi := &file_spdkrpc_spdk_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3312,7 +3974,7 @@ func (x *DiskDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DiskDeleteRequest.ProtoReflect.Descriptor instead. func (*DiskDeleteRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{46} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{56} } func (x *DiskDeleteRequest) GetDiskName() string { @@ -3354,7 +4016,7 @@ type LogSetLevelRequest struct { func (x *LogSetLevelRequest) Reset() { *x = LogSetLevelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[47] + mi := &file_spdkrpc_spdk_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3367,7 +4029,7 @@ func (x *LogSetLevelRequest) String() string { func (*LogSetLevelRequest) ProtoMessage() {} func (x *LogSetLevelRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[47] + mi := &file_spdkrpc_spdk_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3380,7 +4042,7 @@ func (x *LogSetLevelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LogSetLevelRequest.ProtoReflect.Descriptor instead. func (*LogSetLevelRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{47} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{57} } func (x *LogSetLevelRequest) GetLevel() string { @@ -3401,7 +4063,7 @@ type LogSetFlagsRequest struct { func (x *LogSetFlagsRequest) Reset() { *x = LogSetFlagsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[48] + mi := &file_spdkrpc_spdk_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3414,7 +4076,7 @@ func (x *LogSetFlagsRequest) String() string { func (*LogSetFlagsRequest) ProtoMessage() {} func (x *LogSetFlagsRequest) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[48] + mi := &file_spdkrpc_spdk_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3427,7 +4089,7 @@ func (x *LogSetFlagsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LogSetFlagsRequest.ProtoReflect.Descriptor instead. func (*LogSetFlagsRequest) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{48} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{58} } func (x *LogSetFlagsRequest) GetFlags() string { @@ -3448,7 +4110,7 @@ type LogGetLevelResponse struct { func (x *LogGetLevelResponse) Reset() { *x = LogGetLevelResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[49] + mi := &file_spdkrpc_spdk_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3461,7 +4123,7 @@ func (x *LogGetLevelResponse) String() string { func (*LogGetLevelResponse) ProtoMessage() {} func (x *LogGetLevelResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[49] + mi := &file_spdkrpc_spdk_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3474,7 +4136,7 @@ func (x *LogGetLevelResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LogGetLevelResponse.ProtoReflect.Descriptor instead. func (*LogGetLevelResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{49} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{59} } func (x *LogGetLevelResponse) GetLevel() string { @@ -3495,7 +4157,7 @@ type LogGetFlagsResponse struct { func (x *LogGetFlagsResponse) Reset() { *x = LogGetFlagsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spdkrpc_spdk_proto_msgTypes[50] + mi := &file_spdkrpc_spdk_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3508,7 +4170,7 @@ func (x *LogGetFlagsResponse) String() string { func (*LogGetFlagsResponse) ProtoMessage() {} func (x *LogGetFlagsResponse) ProtoReflect() protoreflect.Message { - mi := &file_spdkrpc_spdk_proto_msgTypes[50] + mi := &file_spdkrpc_spdk_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3521,7 +4183,7 @@ func (x *LogGetFlagsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LogGetFlagsResponse.ProtoReflect.Descriptor instead. func (*LogGetFlagsResponse) Descriptor() ([]byte, []int) { - return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{50} + return file_spdkrpc_spdk_proto_rawDescGZIP(), []int{60} } func (x *LogGetFlagsResponse) GetFlags() string { @@ -3590,7 +4252,7 @@ var file_spdkrpc_spdk_proto_rawDesc = []byte{ 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, - 0x76, 0x6f, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc5, + 0x76, 0x6f, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, @@ -3598,86 +4260,173 @@ var file_spdkrpc_spdk_proto_rawDesc = []byte{ 0x76, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x76, 0x73, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x70, 0x65, 0x63, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6c, - 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x27, 0x0a, - 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x1a, 0x4d, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, - 0x0a, 0x10, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x73, 0x74, 0x5f, - 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x76, 0x6f, 0x6c, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, - 0x73, 0x74, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x61, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x10, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x21, 0x52, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x70, 0x65, 0x63, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, + 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6c, 0x65, + 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, + 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x1a, 0x4d, 0x0a, + 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc4, 0x01, 0x0a, + 0x20, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x2e, 0x0a, 0x13, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x65, 0x78, 0x70, 0x6f, + 0x73, 0x65, 0x64, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6c, 0x76, 0x6f, + 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x1a, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x4c, 0x76, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x61, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x72, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x53, 0x72, 0x63, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, - 0x0a, 0x1b, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x6c, 0x76, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x73, 0x74, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x4c, 0x76, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x61, 0x0a, - 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x72, 0x63, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x5c, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5f, + 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa0, + 0x01, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x73, 0x74, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x76, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x73, 0x74, 0x52, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x61, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x73, + 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x2b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, + 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x2c, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x12, + 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x6f, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x70, 0x79, 0x4f, 0x70, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x2b, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x10, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, + 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x6f, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x70, 0x79, 0x4f, 0x70, 0x49, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x2c, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x70, 0x69, 0x65, + 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xcb, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, - 0x3d, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x64, - 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x72, 0x63, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x73, 0x72, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, + 0x72, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x34, 0x0a, 0x16, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x14, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x47, 0x0a, 0x18, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, + 0x76, 0x6f, 0x6c, 0x52, 0x16, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x21, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x44, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x31, 0x0a, 0x15, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x76, 0x6f, + 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x64, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x4c, 0x76, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x22, 0x37, 0x0a, 0x21, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x2b, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x44, 0x73, 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x2b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, + 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x68, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x65, 0x78, 0x70, - 0x6f, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x10, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x22, 0xbc, 0x06, 0x0a, 0x06, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x2c, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, + 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x72, 0x63, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x72, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x73, 0x72, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x6b, 0x0a, 0x2a, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x76, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x73, 0x74, 0x52, + 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0xbc, 0x06, 0x0a, 0x06, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, @@ -3820,527 +4569,584 @@ var file_spdkrpc_spdk_proto_rawDesc = []byte{ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9c, - 0x01, 0x0a, 0x0f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, - 0x0a, 0x12, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x37, 0x0a, - 0x10, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x67, + 0x0a, 0x21, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, + 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x22, 0x45, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x87, 0x03, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x4d, 0x69, - 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x50, - 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x41, 0x50, 0x49, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x41, 0x50, 0x49, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, - 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x14, - 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x64, 0x61, 0x74, 0x61, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x49, 0x0a, 0x15, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x64, - 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x05, 0x0a, 0x13, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4c, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, - 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7e, 0x0a, 0x14, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, - 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x77, 0x0a, 0x13, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x73, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x28, + 0x0a, 0x10, 0x73, 0x72, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x72, 0x63, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x72, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0f, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x37, 0x0a, 0x10, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0xc0, 0x02, 0x0a, 0x1a, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x1a, 0x3d, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x22, 0x87, 0x03, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x41, + 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, + 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6c, 0x69, 0x41, 0x50, 0x49, + 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, + 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x50, 0x49, 0x4d, + 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x50, 0x49, 0x4d, 0x69, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x15, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x05, 0x0a, 0x13, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, + 0x61, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xa2, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x43, 0x0a, 0x20, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x02, 0x0a, - 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x3d, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x1b, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf9, - 0x02, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, + 0x38, 0x01, 0x22, 0x7e, 0x0a, 0x14, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x77, 0x0a, 0x13, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x23, - 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x69, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, - 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x55, 0x72, 0x6c, - 0x12, 0x38, 0x0a, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x22, 0xbd, 0x01, 0x0a, 0x15, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x60, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc0, 0x02, 0x0a, 0x04, 0x44, - 0x69, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x66, 0x72, 0x65, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x72, 0x65, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, - 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaa, 0x01, - 0x0a, 0x11, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, - 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x64, 0x69, 0x73, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x0e, 0x44, 0x69, - 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, - 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x64, 0x69, 0x73, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, - 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, - 0x69, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x6b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x14, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x1a, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, + 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x3d, 0x0a, + 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa2, 0x01, 0x0a, + 0x1b, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x43, 0x0a, 0x20, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x3d, + 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, + 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf9, 0x02, 0x0a, 0x1c, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x52, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x22, 0xbd, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x1a, 0x60, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc0, 0x02, 0x0a, 0x04, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x65, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x65, 0x65, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, + 0x72, 0x65, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x6b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x64, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x2a, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x22, 0x2a, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x2b, 0x0a, - 0x13, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x2b, 0x0a, 0x13, 0x4c, 0x6f, - 0x67, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x26, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x57, 0x4f, 0x10, 0x00, 0x12, 0x06, - 0x0a, 0x02, 0x52, 0x57, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x52, 0x52, 0x10, 0x02, 0x32, - 0xd3, 0x1e, 0x0a, 0x0b, 0x53, 0x50, 0x44, 0x4b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x40, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x12, 0x46, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x47, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x43, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, - 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x49, 0x0a, 0x15, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x18, - 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x43, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x74, + 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, + 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, + 0x2a, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x2a, 0x0a, 0x12, 0x4c, + 0x6f, 0x67, 0x53, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x2b, 0x0a, 0x13, 0x4c, 0x6f, 0x67, 0x47, 0x65, + 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x22, 0x2b, 0x0a, 0x13, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x2a, 0x26, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x06, 0x0a, 0x02, 0x57, 0x4f, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x52, 0x57, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x45, 0x52, 0x52, 0x10, 0x02, 0x32, 0xe0, 0x22, 0x0a, 0x0b, 0x53, 0x50, + 0x44, 0x4b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x70, 0x64, + 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, + 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x46, 0x0a, 0x0d, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x47, 0x65, + 0x74, 0x12, 0x1a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, + 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, + 0x43, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x12, 0x49, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, + 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x49, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0b, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x60, 0x0a, 0x19, 0x52, 0x65, 0x70, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x30, 0x01, 0x12, 0x74, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x29, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x70, + 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, - 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x29, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, - 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x1a, 0x52, + 0x63, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, + 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, + 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x72, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x2a, 0x2e, 0x73, 0x70, + 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x12, + 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x44, 0x65, + 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x24, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x68, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x34, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x72, 0x63, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, - 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x2a, 0x2e, - 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, - 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x44, 0x65, 0x74, 0x61, 0x63, - 0x68, 0x12, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, - 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, - 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x74, 0x0a, 0x19, 0x52, 0x65, 0x70, + 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x24, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x34, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x70, 0x64, + 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x72, 0x63, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x29, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x70, + 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x29, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, - 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x2a, 0x2e, - 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, - 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x22, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x2a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, + 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x22, 0x52, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x74, 0x0a, + 0x24, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x34, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x44, 0x73, 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, + 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x68, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x34, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, + 0x74, 0x53, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x22, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, - 0x74, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, + 0x44, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x54, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, - 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x56, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x24, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, - 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, - 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x73, - 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x44, 0x0a, - 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1c, 0x2e, - 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, - 0x12, 0x19, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x73, 0x70, - 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x46, 0x0a, 0x0d, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x1d, 0x2e, - 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x75, - 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x70, 0x74, 0x79, 0x12, 0x75, 0x0a, 0x22, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x44, + 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x54, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, + 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x24, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x65, + 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, + 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x16, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4f, 0x76, 0x65, 0x72, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x12, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x70, 0x64, - 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x14, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, - 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x14, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, - 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, + 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x12, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x0c, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, + 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x58, 0x0a, 0x16, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x73, 0x70, + 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x12, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x22, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, - 0x14, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, - 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, + 0x14, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0a, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, - 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5c, 0x0a, - 0x11, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x10, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x12, - 0x20, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x53, 0x0a, 0x12, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x12, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x73, - 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x70, 0x64, - 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x60, 0x0a, 0x19, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x29, 0x2e, 0x73, - 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x56, 0x0a, 0x13, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x69, 0x73, - 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, - 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, - 0x73, 0x6b, 0x12, 0x40, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x12, 0x1a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x19, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x14, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x14, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, + 0x0a, 0x0a, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x12, - 0x17, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x53, 0x65, - 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x30, 0x01, 0x12, 0x5c, 0x0a, 0x11, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x70, 0x64, 0x6b, + 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x10, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x41, 0x64, 0x64, 0x12, 0x20, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, + 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x70, 0x64, 0x6b, + 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x12, 0x45, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, + 0x12, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x70, 0x64, 0x6b, + 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x12, 0x29, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x13, 0x45, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x73, 0x70, 0x64, + 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x40, 0x0a, 0x0a, 0x44, 0x69, 0x73, + 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, + 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x4c, - 0x6f, 0x67, 0x53, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x70, 0x64, - 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x43, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x44, + 0x69, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, + 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0d, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x42, + 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x2e, + 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x53, + 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x73, 0x70, - 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x10, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x68, 0x6f, 0x72, 0x6e, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2f, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, + 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x47, 0x65, 0x74, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x4c, + 0x6f, 0x67, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, + 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4a, 0x0a, 0x10, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, 0x73, + 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x31, 0x5a, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x68, + 0x6f, 0x72, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2f, 0x73, 0x70, 0x64, 0x6b, 0x72, 0x70, 0x63, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4356,204 +5162,221 @@ func file_spdkrpc_spdk_proto_rawDescGZIP() []byte { } var file_spdkrpc_spdk_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_spdkrpc_spdk_proto_msgTypes = make([]protoimpl.MessageInfo, 65) +var file_spdkrpc_spdk_proto_msgTypes = make([]protoimpl.MessageInfo, 75) var file_spdkrpc_spdk_proto_goTypes = []interface{}{ - (ReplicaMode)(0), // 0: spdkrpc.ReplicaMode - (*Lvol)(nil), // 1: spdkrpc.Lvol - (*Replica)(nil), // 2: spdkrpc.Replica - (*ReplicaCreateRequest)(nil), // 3: spdkrpc.ReplicaCreateRequest - (*ReplicaDeleteRequest)(nil), // 4: spdkrpc.ReplicaDeleteRequest - (*ReplicaGetRequest)(nil), // 5: spdkrpc.ReplicaGetRequest - (*ReplicaListResponse)(nil), // 6: spdkrpc.ReplicaListResponse - (*ReplicaRebuildingSrcStartRequest)(nil), // 7: spdkrpc.ReplicaRebuildingSrcStartRequest - (*ReplicaRebuildingSrcFinishRequest)(nil), // 8: spdkrpc.ReplicaRebuildingSrcFinishRequest - (*ReplicaRebuildingSrcAttachRequest)(nil), // 9: spdkrpc.ReplicaRebuildingSrcAttachRequest - (*ReplicaRebuildingSrcDetachRequest)(nil), // 10: spdkrpc.ReplicaRebuildingSrcDetachRequest - (*ReplicaSnapshotShallowCopyRequest)(nil), // 11: spdkrpc.ReplicaSnapshotShallowCopyRequest - (*ReplicaRebuildingDstStartRequest)(nil), // 12: spdkrpc.ReplicaRebuildingDstStartRequest - (*ReplicaRebuildingDstStartResponse)(nil), // 13: spdkrpc.ReplicaRebuildingDstStartResponse - (*ReplicaRebuildingDstFinishRequest)(nil), // 14: spdkrpc.ReplicaRebuildingDstFinishRequest - (*Engine)(nil), // 15: spdkrpc.Engine - (*EngineCreateRequest)(nil), // 16: spdkrpc.EngineCreateRequest - (*EngineDeleteRequest)(nil), // 17: spdkrpc.EngineDeleteRequest - (*EngineGetRequest)(nil), // 18: spdkrpc.EngineGetRequest - (*EngineSuspendRequest)(nil), // 19: spdkrpc.EngineSuspendRequest - (*EngineResumeRequest)(nil), // 20: spdkrpc.EngineResumeRequest - (*EngineSwitchOverTargetRequest)(nil), // 21: spdkrpc.EngineSwitchOverTargetRequest - (*EngineDeleteTargetRequest)(nil), // 22: spdkrpc.EngineDeleteTargetRequest - (*EngineListResponse)(nil), // 23: spdkrpc.EngineListResponse - (*EngineReplicaAddRequest)(nil), // 24: spdkrpc.EngineReplicaAddRequest - (*EngineReplicaListRequest)(nil), // 25: spdkrpc.EngineReplicaListRequest - (*EngineReplicaListResponse)(nil), // 26: spdkrpc.EngineReplicaListResponse - (*EngineReplicaDeleteRequest)(nil), // 27: spdkrpc.EngineReplicaDeleteRequest - (*SnapshotRequest)(nil), // 28: spdkrpc.SnapshotRequest - (*SnapshotResponse)(nil), // 29: spdkrpc.SnapshotResponse - (*VersionOutput)(nil), // 30: spdkrpc.VersionOutput - (*VersionDetailGetReply)(nil), // 31: spdkrpc.VersionDetailGetReply - (*BackupCreateRequest)(nil), // 32: spdkrpc.BackupCreateRequest - (*BackupCreateResponse)(nil), // 33: spdkrpc.BackupCreateResponse - (*BackupStatusRequest)(nil), // 34: spdkrpc.BackupStatusRequest - (*BackupStatusResponse)(nil), // 35: spdkrpc.BackupStatusResponse - (*EngineBackupRestoreRequest)(nil), // 36: spdkrpc.EngineBackupRestoreRequest - (*EngineBackupRestoreResponse)(nil), // 37: spdkrpc.EngineBackupRestoreResponse - (*EngineBackupRestoreFinishRequest)(nil), // 38: spdkrpc.EngineBackupRestoreFinishRequest - (*ReplicaBackupRestoreRequest)(nil), // 39: spdkrpc.ReplicaBackupRestoreRequest - (*RestoreStatusRequest)(nil), // 40: spdkrpc.RestoreStatusRequest - (*ReplicaRestoreStatusRequest)(nil), // 41: spdkrpc.ReplicaRestoreStatusRequest - (*ReplicaRestoreStatusResponse)(nil), // 42: spdkrpc.ReplicaRestoreStatusResponse - (*RestoreStatusResponse)(nil), // 43: spdkrpc.RestoreStatusResponse - (*Disk)(nil), // 44: spdkrpc.Disk - (*DiskCreateRequest)(nil), // 45: spdkrpc.DiskCreateRequest - (*DiskGetRequest)(nil), // 46: spdkrpc.DiskGetRequest - (*DiskDeleteRequest)(nil), // 47: spdkrpc.DiskDeleteRequest - (*LogSetLevelRequest)(nil), // 48: spdkrpc.LogSetLevelRequest - (*LogSetFlagsRequest)(nil), // 49: spdkrpc.LogSetFlagsRequest - (*LogGetLevelResponse)(nil), // 50: spdkrpc.LogGetLevelResponse - (*LogGetFlagsResponse)(nil), // 51: spdkrpc.LogGetFlagsResponse - nil, // 52: spdkrpc.Lvol.ChildrenEntry - nil, // 53: spdkrpc.Replica.SnapshotsEntry - nil, // 54: spdkrpc.ReplicaListResponse.ReplicasEntry - nil, // 55: spdkrpc.Engine.ReplicaAddressMapEntry - nil, // 56: spdkrpc.Engine.ReplicaModeMapEntry - nil, // 57: spdkrpc.Engine.SnapshotsEntry - nil, // 58: spdkrpc.EngineCreateRequest.ReplicaAddressMapEntry - nil, // 59: spdkrpc.EngineListResponse.EnginesEntry - nil, // 60: spdkrpc.EngineReplicaListResponse.ReplicasEntry - nil, // 61: spdkrpc.BackupCreateRequest.CredentialEntry - nil, // 62: spdkrpc.EngineBackupRestoreRequest.CredentialEntry - nil, // 63: spdkrpc.EngineBackupRestoreResponse.ErrorsEntry - nil, // 64: spdkrpc.ReplicaBackupRestoreRequest.CredentialEntry - nil, // 65: spdkrpc.RestoreStatusResponse.StatusEntry - (*emptypb.Empty)(nil), // 66: google.protobuf.Empty + (ReplicaMode)(0), // 0: spdkrpc.ReplicaMode + (*Lvol)(nil), // 1: spdkrpc.Lvol + (*Replica)(nil), // 2: spdkrpc.Replica + (*ReplicaCreateRequest)(nil), // 3: spdkrpc.ReplicaCreateRequest + (*ReplicaDeleteRequest)(nil), // 4: spdkrpc.ReplicaDeleteRequest + (*ReplicaGetRequest)(nil), // 5: spdkrpc.ReplicaGetRequest + (*ReplicaListResponse)(nil), // 6: spdkrpc.ReplicaListResponse + (*ReplicaRebuildingSrcStartRequest)(nil), // 7: spdkrpc.ReplicaRebuildingSrcStartRequest + (*ReplicaRebuildingSrcStartResponse)(nil), // 8: spdkrpc.ReplicaRebuildingSrcStartResponse + (*ReplicaRebuildingSrcFinishRequest)(nil), // 9: spdkrpc.ReplicaRebuildingSrcFinishRequest + (*ReplicaRebuildingSrcAttachRequest)(nil), // 10: spdkrpc.ReplicaRebuildingSrcAttachRequest + (*ReplicaRebuildingSrcDetachRequest)(nil), // 11: spdkrpc.ReplicaRebuildingSrcDetachRequest + (*ReplicaRebuildingSrcShallowCopyStartRequest)(nil), // 12: spdkrpc.ReplicaRebuildingSrcShallowCopyStartRequest + (*ReplicaRebuildingSrcShallowCopyStartResponse)(nil), // 13: spdkrpc.ReplicaRebuildingSrcShallowCopyStartResponse + (*ReplicaRebuildingSrcShallowCopyCheckRequest)(nil), // 14: spdkrpc.ReplicaRebuildingSrcShallowCopyCheckRequest + (*ReplicaRebuildingSrcShallowCopyCheckResponse)(nil), // 15: spdkrpc.ReplicaRebuildingSrcShallowCopyCheckResponse + (*ReplicaRebuildingDstStartRequest)(nil), // 16: spdkrpc.ReplicaRebuildingDstStartRequest + (*ReplicaRebuildingDstStartResponse)(nil), // 17: spdkrpc.ReplicaRebuildingDstStartResponse + (*ReplicaRebuildingDstFinishRequest)(nil), // 18: spdkrpc.ReplicaRebuildingDstFinishRequest + (*ReplicaRebuildingDstShallowCopyStartRequest)(nil), // 19: spdkrpc.ReplicaRebuildingDstShallowCopyStartRequest + (*ReplicaRebuildingDstShallowCopyCheckRequest)(nil), // 20: spdkrpc.ReplicaRebuildingDstShallowCopyCheckRequest + (*ReplicaRebuildingDstShallowCopyCheckResponse)(nil), // 21: spdkrpc.ReplicaRebuildingDstShallowCopyCheckResponse + (*ReplicaRebuildingDstSnapshotRevertResponse)(nil), // 22: spdkrpc.ReplicaRebuildingDstSnapshotRevertResponse + (*Engine)(nil), // 23: spdkrpc.Engine + (*EngineCreateRequest)(nil), // 24: spdkrpc.EngineCreateRequest + (*EngineDeleteRequest)(nil), // 25: spdkrpc.EngineDeleteRequest + (*EngineGetRequest)(nil), // 26: spdkrpc.EngineGetRequest + (*EngineSuspendRequest)(nil), // 27: spdkrpc.EngineSuspendRequest + (*EngineResumeRequest)(nil), // 28: spdkrpc.EngineResumeRequest + (*EngineSwitchOverTargetRequest)(nil), // 29: spdkrpc.EngineSwitchOverTargetRequest + (*EngineDeleteTargetRequest)(nil), // 30: spdkrpc.EngineDeleteTargetRequest + (*EngineListResponse)(nil), // 31: spdkrpc.EngineListResponse + (*EngineReplicaAddRequest)(nil), // 32: spdkrpc.EngineReplicaAddRequest + (*EngineReplicaListRequest)(nil), // 33: spdkrpc.EngineReplicaListRequest + (*EngineReplicaListResponse)(nil), // 34: spdkrpc.EngineReplicaListResponse + (*EngineReplicaDeleteRequest)(nil), // 35: spdkrpc.EngineReplicaDeleteRequest + (*EngineReplicaRebuildStatusRequest)(nil), // 36: spdkrpc.EngineReplicaRebuildStatusRequest + (*EngineReplicaRebuildStatusResponse)(nil), // 37: spdkrpc.EngineReplicaRebuildStatusResponse + (*SnapshotRequest)(nil), // 38: spdkrpc.SnapshotRequest + (*SnapshotResponse)(nil), // 39: spdkrpc.SnapshotResponse + (*VersionOutput)(nil), // 40: spdkrpc.VersionOutput + (*VersionDetailGetReply)(nil), // 41: spdkrpc.VersionDetailGetReply + (*BackupCreateRequest)(nil), // 42: spdkrpc.BackupCreateRequest + (*BackupCreateResponse)(nil), // 43: spdkrpc.BackupCreateResponse + (*BackupStatusRequest)(nil), // 44: spdkrpc.BackupStatusRequest + (*BackupStatusResponse)(nil), // 45: spdkrpc.BackupStatusResponse + (*EngineBackupRestoreRequest)(nil), // 46: spdkrpc.EngineBackupRestoreRequest + (*EngineBackupRestoreResponse)(nil), // 47: spdkrpc.EngineBackupRestoreResponse + (*EngineBackupRestoreFinishRequest)(nil), // 48: spdkrpc.EngineBackupRestoreFinishRequest + (*ReplicaBackupRestoreRequest)(nil), // 49: spdkrpc.ReplicaBackupRestoreRequest + (*RestoreStatusRequest)(nil), // 50: spdkrpc.RestoreStatusRequest + (*ReplicaRestoreStatusRequest)(nil), // 51: spdkrpc.ReplicaRestoreStatusRequest + (*ReplicaRestoreStatusResponse)(nil), // 52: spdkrpc.ReplicaRestoreStatusResponse + (*RestoreStatusResponse)(nil), // 53: spdkrpc.RestoreStatusResponse + (*Disk)(nil), // 54: spdkrpc.Disk + (*DiskCreateRequest)(nil), // 55: spdkrpc.DiskCreateRequest + (*DiskGetRequest)(nil), // 56: spdkrpc.DiskGetRequest + (*DiskDeleteRequest)(nil), // 57: spdkrpc.DiskDeleteRequest + (*LogSetLevelRequest)(nil), // 58: spdkrpc.LogSetLevelRequest + (*LogSetFlagsRequest)(nil), // 59: spdkrpc.LogSetFlagsRequest + (*LogGetLevelResponse)(nil), // 60: spdkrpc.LogGetLevelResponse + (*LogGetFlagsResponse)(nil), // 61: spdkrpc.LogGetFlagsResponse + nil, // 62: spdkrpc.Lvol.ChildrenEntry + nil, // 63: spdkrpc.Replica.SnapshotsEntry + nil, // 64: spdkrpc.ReplicaListResponse.ReplicasEntry + nil, // 65: spdkrpc.Engine.ReplicaAddressMapEntry + nil, // 66: spdkrpc.Engine.ReplicaModeMapEntry + nil, // 67: spdkrpc.Engine.SnapshotsEntry + nil, // 68: spdkrpc.EngineCreateRequest.ReplicaAddressMapEntry + nil, // 69: spdkrpc.EngineListResponse.EnginesEntry + nil, // 70: spdkrpc.EngineReplicaListResponse.ReplicasEntry + nil, // 71: spdkrpc.BackupCreateRequest.CredentialEntry + nil, // 72: spdkrpc.EngineBackupRestoreRequest.CredentialEntry + nil, // 73: spdkrpc.EngineBackupRestoreResponse.ErrorsEntry + nil, // 74: spdkrpc.ReplicaBackupRestoreRequest.CredentialEntry + nil, // 75: spdkrpc.RestoreStatusResponse.StatusEntry + (*emptypb.Empty)(nil), // 76: google.protobuf.Empty } var file_spdkrpc_spdk_proto_depIdxs = []int32{ - 52, // 0: spdkrpc.Lvol.children:type_name -> spdkrpc.Lvol.ChildrenEntry + 62, // 0: spdkrpc.Lvol.children:type_name -> spdkrpc.Lvol.ChildrenEntry 1, // 1: spdkrpc.Replica.head:type_name -> spdkrpc.Lvol - 53, // 2: spdkrpc.Replica.snapshots:type_name -> spdkrpc.Replica.SnapshotsEntry - 54, // 3: spdkrpc.ReplicaListResponse.replicas:type_name -> spdkrpc.ReplicaListResponse.ReplicasEntry - 55, // 4: spdkrpc.Engine.replica_address_map:type_name -> spdkrpc.Engine.ReplicaAddressMapEntry - 56, // 5: spdkrpc.Engine.replica_mode_map:type_name -> spdkrpc.Engine.ReplicaModeMapEntry - 1, // 6: spdkrpc.Engine.head:type_name -> spdkrpc.Lvol - 57, // 7: spdkrpc.Engine.snapshots:type_name -> spdkrpc.Engine.SnapshotsEntry - 58, // 8: spdkrpc.EngineCreateRequest.replica_address_map:type_name -> spdkrpc.EngineCreateRequest.ReplicaAddressMapEntry - 59, // 9: spdkrpc.EngineListResponse.engines:type_name -> spdkrpc.EngineListResponse.EnginesEntry - 60, // 10: spdkrpc.EngineReplicaListResponse.replicas:type_name -> spdkrpc.EngineReplicaListResponse.ReplicasEntry - 30, // 11: spdkrpc.VersionDetailGetReply.version:type_name -> spdkrpc.VersionOutput - 61, // 12: spdkrpc.BackupCreateRequest.credential:type_name -> spdkrpc.BackupCreateRequest.CredentialEntry - 62, // 13: spdkrpc.EngineBackupRestoreRequest.credential:type_name -> spdkrpc.EngineBackupRestoreRequest.CredentialEntry - 63, // 14: spdkrpc.EngineBackupRestoreResponse.errors:type_name -> spdkrpc.EngineBackupRestoreResponse.ErrorsEntry - 64, // 15: spdkrpc.ReplicaBackupRestoreRequest.credential:type_name -> spdkrpc.ReplicaBackupRestoreRequest.CredentialEntry - 65, // 16: spdkrpc.RestoreStatusResponse.status:type_name -> spdkrpc.RestoreStatusResponse.StatusEntry - 1, // 17: spdkrpc.Replica.SnapshotsEntry.value:type_name -> spdkrpc.Lvol - 2, // 18: spdkrpc.ReplicaListResponse.ReplicasEntry.value:type_name -> spdkrpc.Replica - 0, // 19: spdkrpc.Engine.ReplicaModeMapEntry.value:type_name -> spdkrpc.ReplicaMode - 1, // 20: spdkrpc.Engine.SnapshotsEntry.value:type_name -> spdkrpc.Lvol - 15, // 21: spdkrpc.EngineListResponse.EnginesEntry.value:type_name -> spdkrpc.Engine - 2, // 22: spdkrpc.EngineReplicaListResponse.ReplicasEntry.value:type_name -> spdkrpc.Replica - 42, // 23: spdkrpc.RestoreStatusResponse.StatusEntry.value:type_name -> spdkrpc.ReplicaRestoreStatusResponse - 3, // 24: spdkrpc.SPDKService.ReplicaCreate:input_type -> spdkrpc.ReplicaCreateRequest - 4, // 25: spdkrpc.SPDKService.ReplicaDelete:input_type -> spdkrpc.ReplicaDeleteRequest - 5, // 26: spdkrpc.SPDKService.ReplicaGet:input_type -> spdkrpc.ReplicaGetRequest - 28, // 27: spdkrpc.SPDKService.ReplicaSnapshotCreate:input_type -> spdkrpc.SnapshotRequest - 28, // 28: spdkrpc.SPDKService.ReplicaSnapshotDelete:input_type -> spdkrpc.SnapshotRequest - 28, // 29: spdkrpc.SPDKService.ReplicaSnapshotRevert:input_type -> spdkrpc.SnapshotRequest - 66, // 30: spdkrpc.SPDKService.ReplicaList:input_type -> google.protobuf.Empty - 66, // 31: spdkrpc.SPDKService.ReplicaWatch:input_type -> google.protobuf.Empty - 7, // 32: spdkrpc.SPDKService.ReplicaRebuildingSrcStart:input_type -> spdkrpc.ReplicaRebuildingSrcStartRequest - 8, // 33: spdkrpc.SPDKService.ReplicaRebuildingSrcFinish:input_type -> spdkrpc.ReplicaRebuildingSrcFinishRequest - 9, // 34: spdkrpc.SPDKService.ReplicaRebuildingSrcAttach:input_type -> spdkrpc.ReplicaRebuildingSrcAttachRequest - 10, // 35: spdkrpc.SPDKService.ReplicaRebuildingSrcDetach:input_type -> spdkrpc.ReplicaRebuildingSrcDetachRequest - 11, // 36: spdkrpc.SPDKService.ReplicaSnapshotShallowCopy:input_type -> spdkrpc.ReplicaSnapshotShallowCopyRequest - 12, // 37: spdkrpc.SPDKService.ReplicaRebuildingDstStart:input_type -> spdkrpc.ReplicaRebuildingDstStartRequest - 14, // 38: spdkrpc.SPDKService.ReplicaRebuildingDstFinish:input_type -> spdkrpc.ReplicaRebuildingDstFinishRequest - 28, // 39: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotCreate:input_type -> spdkrpc.SnapshotRequest - 28, // 40: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotRevert:input_type -> spdkrpc.SnapshotRequest - 32, // 41: spdkrpc.SPDKService.ReplicaBackupCreate:input_type -> spdkrpc.BackupCreateRequest - 34, // 42: spdkrpc.SPDKService.ReplicaBackupStatus:input_type -> spdkrpc.BackupStatusRequest - 39, // 43: spdkrpc.SPDKService.ReplicaBackupRestore:input_type -> spdkrpc.ReplicaBackupRestoreRequest - 41, // 44: spdkrpc.SPDKService.ReplicaRestoreStatus:input_type -> spdkrpc.ReplicaRestoreStatusRequest - 16, // 45: spdkrpc.SPDKService.EngineCreate:input_type -> spdkrpc.EngineCreateRequest - 17, // 46: spdkrpc.SPDKService.EngineDelete:input_type -> spdkrpc.EngineDeleteRequest - 18, // 47: spdkrpc.SPDKService.EngineGet:input_type -> spdkrpc.EngineGetRequest - 19, // 48: spdkrpc.SPDKService.EngineSuspend:input_type -> spdkrpc.EngineSuspendRequest - 20, // 49: spdkrpc.SPDKService.EngineResume:input_type -> spdkrpc.EngineResumeRequest - 21, // 50: spdkrpc.SPDKService.EngineSwitchOverTarget:input_type -> spdkrpc.EngineSwitchOverTargetRequest - 22, // 51: spdkrpc.SPDKService.EngineDeleteTarget:input_type -> spdkrpc.EngineDeleteTargetRequest - 28, // 52: spdkrpc.SPDKService.EngineSnapshotCreate:input_type -> spdkrpc.SnapshotRequest - 28, // 53: spdkrpc.SPDKService.EngineSnapshotDelete:input_type -> spdkrpc.SnapshotRequest - 28, // 54: spdkrpc.SPDKService.EngineSnapshotRevert:input_type -> spdkrpc.SnapshotRequest - 66, // 55: spdkrpc.SPDKService.EngineList:input_type -> google.protobuf.Empty - 66, // 56: spdkrpc.SPDKService.EngineWatch:input_type -> google.protobuf.Empty - 25, // 57: spdkrpc.SPDKService.EngineReplicaList:input_type -> spdkrpc.EngineReplicaListRequest - 24, // 58: spdkrpc.SPDKService.EngineReplicaAdd:input_type -> spdkrpc.EngineReplicaAddRequest - 27, // 59: spdkrpc.SPDKService.EngineReplicaDelete:input_type -> spdkrpc.EngineReplicaDeleteRequest - 32, // 60: spdkrpc.SPDKService.EngineBackupCreate:input_type -> spdkrpc.BackupCreateRequest - 34, // 61: spdkrpc.SPDKService.EngineBackupStatus:input_type -> spdkrpc.BackupStatusRequest - 36, // 62: spdkrpc.SPDKService.EngineBackupRestore:input_type -> spdkrpc.EngineBackupRestoreRequest - 38, // 63: spdkrpc.SPDKService.EngineBackupRestoreFinish:input_type -> spdkrpc.EngineBackupRestoreFinishRequest - 40, // 64: spdkrpc.SPDKService.EngineRestoreStatus:input_type -> spdkrpc.RestoreStatusRequest - 45, // 65: spdkrpc.SPDKService.DiskCreate:input_type -> spdkrpc.DiskCreateRequest - 47, // 66: spdkrpc.SPDKService.DiskDelete:input_type -> spdkrpc.DiskDeleteRequest - 46, // 67: spdkrpc.SPDKService.DiskGet:input_type -> spdkrpc.DiskGetRequest - 48, // 68: spdkrpc.SPDKService.LogSetLevel:input_type -> spdkrpc.LogSetLevelRequest - 49, // 69: spdkrpc.SPDKService.LogSetFlags:input_type -> spdkrpc.LogSetFlagsRequest - 66, // 70: spdkrpc.SPDKService.LogGetLevel:input_type -> google.protobuf.Empty - 66, // 71: spdkrpc.SPDKService.LogGetFlags:input_type -> google.protobuf.Empty - 66, // 72: spdkrpc.SPDKService.VersionDetailGet:input_type -> google.protobuf.Empty - 2, // 73: spdkrpc.SPDKService.ReplicaCreate:output_type -> spdkrpc.Replica - 66, // 74: spdkrpc.SPDKService.ReplicaDelete:output_type -> google.protobuf.Empty - 2, // 75: spdkrpc.SPDKService.ReplicaGet:output_type -> spdkrpc.Replica - 2, // 76: spdkrpc.SPDKService.ReplicaSnapshotCreate:output_type -> spdkrpc.Replica - 66, // 77: spdkrpc.SPDKService.ReplicaSnapshotDelete:output_type -> google.protobuf.Empty - 66, // 78: spdkrpc.SPDKService.ReplicaSnapshotRevert:output_type -> google.protobuf.Empty - 6, // 79: spdkrpc.SPDKService.ReplicaList:output_type -> spdkrpc.ReplicaListResponse - 66, // 80: spdkrpc.SPDKService.ReplicaWatch:output_type -> google.protobuf.Empty - 66, // 81: spdkrpc.SPDKService.ReplicaRebuildingSrcStart:output_type -> google.protobuf.Empty - 66, // 82: spdkrpc.SPDKService.ReplicaRebuildingSrcFinish:output_type -> google.protobuf.Empty - 66, // 83: spdkrpc.SPDKService.ReplicaRebuildingSrcAttach:output_type -> google.protobuf.Empty - 66, // 84: spdkrpc.SPDKService.ReplicaRebuildingSrcDetach:output_type -> google.protobuf.Empty - 66, // 85: spdkrpc.SPDKService.ReplicaSnapshotShallowCopy:output_type -> google.protobuf.Empty - 13, // 86: spdkrpc.SPDKService.ReplicaRebuildingDstStart:output_type -> spdkrpc.ReplicaRebuildingDstStartResponse - 66, // 87: spdkrpc.SPDKService.ReplicaRebuildingDstFinish:output_type -> google.protobuf.Empty - 66, // 88: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotCreate:output_type -> google.protobuf.Empty - 66, // 89: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotRevert:output_type -> google.protobuf.Empty - 33, // 90: spdkrpc.SPDKService.ReplicaBackupCreate:output_type -> spdkrpc.BackupCreateResponse - 35, // 91: spdkrpc.SPDKService.ReplicaBackupStatus:output_type -> spdkrpc.BackupStatusResponse - 66, // 92: spdkrpc.SPDKService.ReplicaBackupRestore:output_type -> google.protobuf.Empty - 42, // 93: spdkrpc.SPDKService.ReplicaRestoreStatus:output_type -> spdkrpc.ReplicaRestoreStatusResponse - 15, // 94: spdkrpc.SPDKService.EngineCreate:output_type -> spdkrpc.Engine - 66, // 95: spdkrpc.SPDKService.EngineDelete:output_type -> google.protobuf.Empty - 15, // 96: spdkrpc.SPDKService.EngineGet:output_type -> spdkrpc.Engine - 66, // 97: spdkrpc.SPDKService.EngineSuspend:output_type -> google.protobuf.Empty - 66, // 98: spdkrpc.SPDKService.EngineResume:output_type -> google.protobuf.Empty - 66, // 99: spdkrpc.SPDKService.EngineSwitchOverTarget:output_type -> google.protobuf.Empty - 66, // 100: spdkrpc.SPDKService.EngineDeleteTarget:output_type -> google.protobuf.Empty - 29, // 101: spdkrpc.SPDKService.EngineSnapshotCreate:output_type -> spdkrpc.SnapshotResponse - 66, // 102: spdkrpc.SPDKService.EngineSnapshotDelete:output_type -> google.protobuf.Empty - 66, // 103: spdkrpc.SPDKService.EngineSnapshotRevert:output_type -> google.protobuf.Empty - 23, // 104: spdkrpc.SPDKService.EngineList:output_type -> spdkrpc.EngineListResponse - 66, // 105: spdkrpc.SPDKService.EngineWatch:output_type -> google.protobuf.Empty - 26, // 106: spdkrpc.SPDKService.EngineReplicaList:output_type -> spdkrpc.EngineReplicaListResponse - 66, // 107: spdkrpc.SPDKService.EngineReplicaAdd:output_type -> google.protobuf.Empty - 66, // 108: spdkrpc.SPDKService.EngineReplicaDelete:output_type -> google.protobuf.Empty - 33, // 109: spdkrpc.SPDKService.EngineBackupCreate:output_type -> spdkrpc.BackupCreateResponse - 35, // 110: spdkrpc.SPDKService.EngineBackupStatus:output_type -> spdkrpc.BackupStatusResponse - 37, // 111: spdkrpc.SPDKService.EngineBackupRestore:output_type -> spdkrpc.EngineBackupRestoreResponse - 66, // 112: spdkrpc.SPDKService.EngineBackupRestoreFinish:output_type -> google.protobuf.Empty - 43, // 113: spdkrpc.SPDKService.EngineRestoreStatus:output_type -> spdkrpc.RestoreStatusResponse - 44, // 114: spdkrpc.SPDKService.DiskCreate:output_type -> spdkrpc.Disk - 66, // 115: spdkrpc.SPDKService.DiskDelete:output_type -> google.protobuf.Empty - 44, // 116: spdkrpc.SPDKService.DiskGet:output_type -> spdkrpc.Disk - 66, // 117: spdkrpc.SPDKService.LogSetLevel:output_type -> google.protobuf.Empty - 66, // 118: spdkrpc.SPDKService.LogSetFlags:output_type -> google.protobuf.Empty - 50, // 119: spdkrpc.SPDKService.LogGetLevel:output_type -> spdkrpc.LogGetLevelResponse - 51, // 120: spdkrpc.SPDKService.LogGetFlags:output_type -> spdkrpc.LogGetFlagsResponse - 31, // 121: spdkrpc.SPDKService.VersionDetailGet:output_type -> spdkrpc.VersionDetailGetReply - 73, // [73:122] is the sub-list for method output_type - 24, // [24:73] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 63, // 2: spdkrpc.Replica.snapshots:type_name -> spdkrpc.Replica.SnapshotsEntry + 64, // 3: spdkrpc.ReplicaListResponse.replicas:type_name -> spdkrpc.ReplicaListResponse.ReplicasEntry + 1, // 4: spdkrpc.ReplicaRebuildingDstStartRequest.rebuilding_snapshot_list:type_name -> spdkrpc.Lvol + 65, // 5: spdkrpc.Engine.replica_address_map:type_name -> spdkrpc.Engine.ReplicaAddressMapEntry + 66, // 6: spdkrpc.Engine.replica_mode_map:type_name -> spdkrpc.Engine.ReplicaModeMapEntry + 1, // 7: spdkrpc.Engine.head:type_name -> spdkrpc.Lvol + 67, // 8: spdkrpc.Engine.snapshots:type_name -> spdkrpc.Engine.SnapshotsEntry + 68, // 9: spdkrpc.EngineCreateRequest.replica_address_map:type_name -> spdkrpc.EngineCreateRequest.ReplicaAddressMapEntry + 69, // 10: spdkrpc.EngineListResponse.engines:type_name -> spdkrpc.EngineListResponse.EnginesEntry + 70, // 11: spdkrpc.EngineReplicaListResponse.replicas:type_name -> spdkrpc.EngineReplicaListResponse.ReplicasEntry + 40, // 12: spdkrpc.VersionDetailGetReply.version:type_name -> spdkrpc.VersionOutput + 71, // 13: spdkrpc.BackupCreateRequest.credential:type_name -> spdkrpc.BackupCreateRequest.CredentialEntry + 72, // 14: spdkrpc.EngineBackupRestoreRequest.credential:type_name -> spdkrpc.EngineBackupRestoreRequest.CredentialEntry + 73, // 15: spdkrpc.EngineBackupRestoreResponse.errors:type_name -> spdkrpc.EngineBackupRestoreResponse.ErrorsEntry + 74, // 16: spdkrpc.ReplicaBackupRestoreRequest.credential:type_name -> spdkrpc.ReplicaBackupRestoreRequest.CredentialEntry + 75, // 17: spdkrpc.RestoreStatusResponse.status:type_name -> spdkrpc.RestoreStatusResponse.StatusEntry + 1, // 18: spdkrpc.Replica.SnapshotsEntry.value:type_name -> spdkrpc.Lvol + 2, // 19: spdkrpc.ReplicaListResponse.ReplicasEntry.value:type_name -> spdkrpc.Replica + 0, // 20: spdkrpc.Engine.ReplicaModeMapEntry.value:type_name -> spdkrpc.ReplicaMode + 1, // 21: spdkrpc.Engine.SnapshotsEntry.value:type_name -> spdkrpc.Lvol + 23, // 22: spdkrpc.EngineListResponse.EnginesEntry.value:type_name -> spdkrpc.Engine + 2, // 23: spdkrpc.EngineReplicaListResponse.ReplicasEntry.value:type_name -> spdkrpc.Replica + 52, // 24: spdkrpc.RestoreStatusResponse.StatusEntry.value:type_name -> spdkrpc.ReplicaRestoreStatusResponse + 3, // 25: spdkrpc.SPDKService.ReplicaCreate:input_type -> spdkrpc.ReplicaCreateRequest + 4, // 26: spdkrpc.SPDKService.ReplicaDelete:input_type -> spdkrpc.ReplicaDeleteRequest + 5, // 27: spdkrpc.SPDKService.ReplicaGet:input_type -> spdkrpc.ReplicaGetRequest + 38, // 28: spdkrpc.SPDKService.ReplicaSnapshotCreate:input_type -> spdkrpc.SnapshotRequest + 38, // 29: spdkrpc.SPDKService.ReplicaSnapshotDelete:input_type -> spdkrpc.SnapshotRequest + 38, // 30: spdkrpc.SPDKService.ReplicaSnapshotRevert:input_type -> spdkrpc.SnapshotRequest + 76, // 31: spdkrpc.SPDKService.ReplicaList:input_type -> google.protobuf.Empty + 76, // 32: spdkrpc.SPDKService.ReplicaWatch:input_type -> google.protobuf.Empty + 7, // 33: spdkrpc.SPDKService.ReplicaRebuildingSrcStart:input_type -> spdkrpc.ReplicaRebuildingSrcStartRequest + 9, // 34: spdkrpc.SPDKService.ReplicaRebuildingSrcFinish:input_type -> spdkrpc.ReplicaRebuildingSrcFinishRequest + 10, // 35: spdkrpc.SPDKService.ReplicaRebuildingSrcAttach:input_type -> spdkrpc.ReplicaRebuildingSrcAttachRequest + 11, // 36: spdkrpc.SPDKService.ReplicaRebuildingSrcDetach:input_type -> spdkrpc.ReplicaRebuildingSrcDetachRequest + 12, // 37: spdkrpc.SPDKService.ReplicaRebuildingSrcShallowCopyStart:input_type -> spdkrpc.ReplicaRebuildingSrcShallowCopyStartRequest + 14, // 38: spdkrpc.SPDKService.ReplicaRebuildingSrcShallowCopyCheck:input_type -> spdkrpc.ReplicaRebuildingSrcShallowCopyCheckRequest + 16, // 39: spdkrpc.SPDKService.ReplicaRebuildingDstStart:input_type -> spdkrpc.ReplicaRebuildingDstStartRequest + 18, // 40: spdkrpc.SPDKService.ReplicaRebuildingDstFinish:input_type -> spdkrpc.ReplicaRebuildingDstFinishRequest + 19, // 41: spdkrpc.SPDKService.ReplicaRebuildingDstShallowCopyStart:input_type -> spdkrpc.ReplicaRebuildingDstShallowCopyStartRequest + 20, // 42: spdkrpc.SPDKService.ReplicaRebuildingDstShallowCopyCheck:input_type -> spdkrpc.ReplicaRebuildingDstShallowCopyCheckRequest + 38, // 43: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotCreate:input_type -> spdkrpc.SnapshotRequest + 38, // 44: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotRevert:input_type -> spdkrpc.SnapshotRequest + 42, // 45: spdkrpc.SPDKService.ReplicaBackupCreate:input_type -> spdkrpc.BackupCreateRequest + 44, // 46: spdkrpc.SPDKService.ReplicaBackupStatus:input_type -> spdkrpc.BackupStatusRequest + 49, // 47: spdkrpc.SPDKService.ReplicaBackupRestore:input_type -> spdkrpc.ReplicaBackupRestoreRequest + 51, // 48: spdkrpc.SPDKService.ReplicaRestoreStatus:input_type -> spdkrpc.ReplicaRestoreStatusRequest + 24, // 49: spdkrpc.SPDKService.EngineCreate:input_type -> spdkrpc.EngineCreateRequest + 25, // 50: spdkrpc.SPDKService.EngineDelete:input_type -> spdkrpc.EngineDeleteRequest + 26, // 51: spdkrpc.SPDKService.EngineGet:input_type -> spdkrpc.EngineGetRequest + 27, // 52: spdkrpc.SPDKService.EngineSuspend:input_type -> spdkrpc.EngineSuspendRequest + 28, // 53: spdkrpc.SPDKService.EngineResume:input_type -> spdkrpc.EngineResumeRequest + 29, // 54: spdkrpc.SPDKService.EngineSwitchOverTarget:input_type -> spdkrpc.EngineSwitchOverTargetRequest + 30, // 55: spdkrpc.SPDKService.EngineDeleteTarget:input_type -> spdkrpc.EngineDeleteTargetRequest + 38, // 56: spdkrpc.SPDKService.EngineSnapshotCreate:input_type -> spdkrpc.SnapshotRequest + 38, // 57: spdkrpc.SPDKService.EngineSnapshotDelete:input_type -> spdkrpc.SnapshotRequest + 38, // 58: spdkrpc.SPDKService.EngineSnapshotRevert:input_type -> spdkrpc.SnapshotRequest + 76, // 59: spdkrpc.SPDKService.EngineList:input_type -> google.protobuf.Empty + 76, // 60: spdkrpc.SPDKService.EngineWatch:input_type -> google.protobuf.Empty + 33, // 61: spdkrpc.SPDKService.EngineReplicaList:input_type -> spdkrpc.EngineReplicaListRequest + 32, // 62: spdkrpc.SPDKService.EngineReplicaAdd:input_type -> spdkrpc.EngineReplicaAddRequest + 35, // 63: spdkrpc.SPDKService.EngineReplicaDelete:input_type -> spdkrpc.EngineReplicaDeleteRequest + 42, // 64: spdkrpc.SPDKService.EngineBackupCreate:input_type -> spdkrpc.BackupCreateRequest + 44, // 65: spdkrpc.SPDKService.EngineBackupStatus:input_type -> spdkrpc.BackupStatusRequest + 46, // 66: spdkrpc.SPDKService.EngineBackupRestore:input_type -> spdkrpc.EngineBackupRestoreRequest + 48, // 67: spdkrpc.SPDKService.EngineBackupRestoreFinish:input_type -> spdkrpc.EngineBackupRestoreFinishRequest + 50, // 68: spdkrpc.SPDKService.EngineRestoreStatus:input_type -> spdkrpc.RestoreStatusRequest + 55, // 69: spdkrpc.SPDKService.DiskCreate:input_type -> spdkrpc.DiskCreateRequest + 57, // 70: spdkrpc.SPDKService.DiskDelete:input_type -> spdkrpc.DiskDeleteRequest + 56, // 71: spdkrpc.SPDKService.DiskGet:input_type -> spdkrpc.DiskGetRequest + 58, // 72: spdkrpc.SPDKService.LogSetLevel:input_type -> spdkrpc.LogSetLevelRequest + 59, // 73: spdkrpc.SPDKService.LogSetFlags:input_type -> spdkrpc.LogSetFlagsRequest + 76, // 74: spdkrpc.SPDKService.LogGetLevel:input_type -> google.protobuf.Empty + 76, // 75: spdkrpc.SPDKService.LogGetFlags:input_type -> google.protobuf.Empty + 76, // 76: spdkrpc.SPDKService.VersionDetailGet:input_type -> google.protobuf.Empty + 2, // 77: spdkrpc.SPDKService.ReplicaCreate:output_type -> spdkrpc.Replica + 76, // 78: spdkrpc.SPDKService.ReplicaDelete:output_type -> google.protobuf.Empty + 2, // 79: spdkrpc.SPDKService.ReplicaGet:output_type -> spdkrpc.Replica + 2, // 80: spdkrpc.SPDKService.ReplicaSnapshotCreate:output_type -> spdkrpc.Replica + 76, // 81: spdkrpc.SPDKService.ReplicaSnapshotDelete:output_type -> google.protobuf.Empty + 76, // 82: spdkrpc.SPDKService.ReplicaSnapshotRevert:output_type -> google.protobuf.Empty + 6, // 83: spdkrpc.SPDKService.ReplicaList:output_type -> spdkrpc.ReplicaListResponse + 76, // 84: spdkrpc.SPDKService.ReplicaWatch:output_type -> google.protobuf.Empty + 8, // 85: spdkrpc.SPDKService.ReplicaRebuildingSrcStart:output_type -> spdkrpc.ReplicaRebuildingSrcStartResponse + 76, // 86: spdkrpc.SPDKService.ReplicaRebuildingSrcFinish:output_type -> google.protobuf.Empty + 76, // 87: spdkrpc.SPDKService.ReplicaRebuildingSrcAttach:output_type -> google.protobuf.Empty + 76, // 88: spdkrpc.SPDKService.ReplicaRebuildingSrcDetach:output_type -> google.protobuf.Empty + 13, // 89: spdkrpc.SPDKService.ReplicaRebuildingSrcShallowCopyStart:output_type -> spdkrpc.ReplicaRebuildingSrcShallowCopyStartResponse + 15, // 90: spdkrpc.SPDKService.ReplicaRebuildingSrcShallowCopyCheck:output_type -> spdkrpc.ReplicaRebuildingSrcShallowCopyCheckResponse + 17, // 91: spdkrpc.SPDKService.ReplicaRebuildingDstStart:output_type -> spdkrpc.ReplicaRebuildingDstStartResponse + 76, // 92: spdkrpc.SPDKService.ReplicaRebuildingDstFinish:output_type -> google.protobuf.Empty + 76, // 93: spdkrpc.SPDKService.ReplicaRebuildingDstShallowCopyStart:output_type -> google.protobuf.Empty + 21, // 94: spdkrpc.SPDKService.ReplicaRebuildingDstShallowCopyCheck:output_type -> spdkrpc.ReplicaRebuildingDstShallowCopyCheckResponse + 76, // 95: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotCreate:output_type -> google.protobuf.Empty + 22, // 96: spdkrpc.SPDKService.ReplicaRebuildingDstSnapshotRevert:output_type -> spdkrpc.ReplicaRebuildingDstSnapshotRevertResponse + 43, // 97: spdkrpc.SPDKService.ReplicaBackupCreate:output_type -> spdkrpc.BackupCreateResponse + 45, // 98: spdkrpc.SPDKService.ReplicaBackupStatus:output_type -> spdkrpc.BackupStatusResponse + 76, // 99: spdkrpc.SPDKService.ReplicaBackupRestore:output_type -> google.protobuf.Empty + 52, // 100: spdkrpc.SPDKService.ReplicaRestoreStatus:output_type -> spdkrpc.ReplicaRestoreStatusResponse + 23, // 101: spdkrpc.SPDKService.EngineCreate:output_type -> spdkrpc.Engine + 76, // 102: spdkrpc.SPDKService.EngineDelete:output_type -> google.protobuf.Empty + 23, // 103: spdkrpc.SPDKService.EngineGet:output_type -> spdkrpc.Engine + 76, // 104: spdkrpc.SPDKService.EngineSuspend:output_type -> google.protobuf.Empty + 76, // 105: spdkrpc.SPDKService.EngineResume:output_type -> google.protobuf.Empty + 76, // 106: spdkrpc.SPDKService.EngineSwitchOverTarget:output_type -> google.protobuf.Empty + 76, // 107: spdkrpc.SPDKService.EngineDeleteTarget:output_type -> google.protobuf.Empty + 39, // 108: spdkrpc.SPDKService.EngineSnapshotCreate:output_type -> spdkrpc.SnapshotResponse + 76, // 109: spdkrpc.SPDKService.EngineSnapshotDelete:output_type -> google.protobuf.Empty + 76, // 110: spdkrpc.SPDKService.EngineSnapshotRevert:output_type -> google.protobuf.Empty + 31, // 111: spdkrpc.SPDKService.EngineList:output_type -> spdkrpc.EngineListResponse + 76, // 112: spdkrpc.SPDKService.EngineWatch:output_type -> google.protobuf.Empty + 34, // 113: spdkrpc.SPDKService.EngineReplicaList:output_type -> spdkrpc.EngineReplicaListResponse + 76, // 114: spdkrpc.SPDKService.EngineReplicaAdd:output_type -> google.protobuf.Empty + 76, // 115: spdkrpc.SPDKService.EngineReplicaDelete:output_type -> google.protobuf.Empty + 43, // 116: spdkrpc.SPDKService.EngineBackupCreate:output_type -> spdkrpc.BackupCreateResponse + 45, // 117: spdkrpc.SPDKService.EngineBackupStatus:output_type -> spdkrpc.BackupStatusResponse + 47, // 118: spdkrpc.SPDKService.EngineBackupRestore:output_type -> spdkrpc.EngineBackupRestoreResponse + 76, // 119: spdkrpc.SPDKService.EngineBackupRestoreFinish:output_type -> google.protobuf.Empty + 53, // 120: spdkrpc.SPDKService.EngineRestoreStatus:output_type -> spdkrpc.RestoreStatusResponse + 54, // 121: spdkrpc.SPDKService.DiskCreate:output_type -> spdkrpc.Disk + 76, // 122: spdkrpc.SPDKService.DiskDelete:output_type -> google.protobuf.Empty + 54, // 123: spdkrpc.SPDKService.DiskGet:output_type -> spdkrpc.Disk + 76, // 124: spdkrpc.SPDKService.LogSetLevel:output_type -> google.protobuf.Empty + 76, // 125: spdkrpc.SPDKService.LogSetFlags:output_type -> google.protobuf.Empty + 60, // 126: spdkrpc.SPDKService.LogGetLevel:output_type -> spdkrpc.LogGetLevelResponse + 61, // 127: spdkrpc.SPDKService.LogGetFlags:output_type -> spdkrpc.LogGetFlagsResponse + 41, // 128: spdkrpc.SPDKService.VersionDetailGet:output_type -> spdkrpc.VersionDetailGetReply + 77, // [77:129] is the sub-list for method output_type + 25, // [25:77] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_spdkrpc_spdk_proto_init() } @@ -4647,7 +5470,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRebuildingSrcFinishRequest); i { + switch v := v.(*ReplicaRebuildingSrcStartResponse); i { case 0: return &v.state case 1: @@ -4659,7 +5482,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRebuildingSrcAttachRequest); i { + switch v := v.(*ReplicaRebuildingSrcFinishRequest); i { case 0: return &v.state case 1: @@ -4671,7 +5494,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRebuildingSrcDetachRequest); i { + switch v := v.(*ReplicaRebuildingSrcAttachRequest); i { case 0: return &v.state case 1: @@ -4683,7 +5506,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaSnapshotShallowCopyRequest); i { + switch v := v.(*ReplicaRebuildingSrcDetachRequest); i { case 0: return &v.state case 1: @@ -4695,7 +5518,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRebuildingDstStartRequest); i { + switch v := v.(*ReplicaRebuildingSrcShallowCopyStartRequest); i { case 0: return &v.state case 1: @@ -4707,7 +5530,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRebuildingDstStartResponse); i { + switch v := v.(*ReplicaRebuildingSrcShallowCopyStartResponse); i { case 0: return &v.state case 1: @@ -4719,7 +5542,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRebuildingDstFinishRequest); i { + switch v := v.(*ReplicaRebuildingSrcShallowCopyCheckRequest); i { case 0: return &v.state case 1: @@ -4731,7 +5554,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Engine); i { + switch v := v.(*ReplicaRebuildingSrcShallowCopyCheckResponse); i { case 0: return &v.state case 1: @@ -4743,7 +5566,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineCreateRequest); i { + switch v := v.(*ReplicaRebuildingDstStartRequest); i { case 0: return &v.state case 1: @@ -4755,7 +5578,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineDeleteRequest); i { + switch v := v.(*ReplicaRebuildingDstStartResponse); i { case 0: return &v.state case 1: @@ -4767,7 +5590,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineGetRequest); i { + switch v := v.(*ReplicaRebuildingDstFinishRequest); i { case 0: return &v.state case 1: @@ -4779,7 +5602,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineSuspendRequest); i { + switch v := v.(*ReplicaRebuildingDstShallowCopyStartRequest); i { case 0: return &v.state case 1: @@ -4791,7 +5614,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineResumeRequest); i { + switch v := v.(*ReplicaRebuildingDstShallowCopyCheckRequest); i { case 0: return &v.state case 1: @@ -4803,7 +5626,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineSwitchOverTargetRequest); i { + switch v := v.(*ReplicaRebuildingDstShallowCopyCheckResponse); i { case 0: return &v.state case 1: @@ -4815,7 +5638,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineDeleteTargetRequest); i { + switch v := v.(*ReplicaRebuildingDstSnapshotRevertResponse); i { case 0: return &v.state case 1: @@ -4827,7 +5650,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineListResponse); i { + switch v := v.(*Engine); i { case 0: return &v.state case 1: @@ -4839,7 +5662,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineReplicaAddRequest); i { + switch v := v.(*EngineCreateRequest); i { case 0: return &v.state case 1: @@ -4851,7 +5674,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineReplicaListRequest); i { + switch v := v.(*EngineDeleteRequest); i { case 0: return &v.state case 1: @@ -4863,7 +5686,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineReplicaListResponse); i { + switch v := v.(*EngineGetRequest); i { case 0: return &v.state case 1: @@ -4875,7 +5698,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineReplicaDeleteRequest); i { + switch v := v.(*EngineSuspendRequest); i { case 0: return &v.state case 1: @@ -4887,7 +5710,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SnapshotRequest); i { + switch v := v.(*EngineResumeRequest); i { case 0: return &v.state case 1: @@ -4899,7 +5722,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SnapshotResponse); i { + switch v := v.(*EngineSwitchOverTargetRequest); i { case 0: return &v.state case 1: @@ -4911,7 +5734,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VersionOutput); i { + switch v := v.(*EngineDeleteTargetRequest); i { case 0: return &v.state case 1: @@ -4923,7 +5746,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VersionDetailGetReply); i { + switch v := v.(*EngineListResponse); i { case 0: return &v.state case 1: @@ -4935,7 +5758,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackupCreateRequest); i { + switch v := v.(*EngineReplicaAddRequest); i { case 0: return &v.state case 1: @@ -4947,7 +5770,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackupCreateResponse); i { + switch v := v.(*EngineReplicaListRequest); i { case 0: return &v.state case 1: @@ -4959,7 +5782,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackupStatusRequest); i { + switch v := v.(*EngineReplicaListResponse); i { case 0: return &v.state case 1: @@ -4971,7 +5794,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackupStatusResponse); i { + switch v := v.(*EngineReplicaDeleteRequest); i { case 0: return &v.state case 1: @@ -4983,7 +5806,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineBackupRestoreRequest); i { + switch v := v.(*EngineReplicaRebuildStatusRequest); i { case 0: return &v.state case 1: @@ -4995,7 +5818,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineBackupRestoreResponse); i { + switch v := v.(*EngineReplicaRebuildStatusResponse); i { case 0: return &v.state case 1: @@ -5007,7 +5830,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineBackupRestoreFinishRequest); i { + switch v := v.(*SnapshotRequest); i { case 0: return &v.state case 1: @@ -5019,7 +5842,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaBackupRestoreRequest); i { + switch v := v.(*SnapshotResponse); i { case 0: return &v.state case 1: @@ -5031,7 +5854,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestoreStatusRequest); i { + switch v := v.(*VersionOutput); i { case 0: return &v.state case 1: @@ -5043,7 +5866,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRestoreStatusRequest); i { + switch v := v.(*VersionDetailGetReply); i { case 0: return &v.state case 1: @@ -5055,7 +5878,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaRestoreStatusResponse); i { + switch v := v.(*BackupCreateRequest); i { case 0: return &v.state case 1: @@ -5067,7 +5890,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestoreStatusResponse); i { + switch v := v.(*BackupCreateResponse); i { case 0: return &v.state case 1: @@ -5079,7 +5902,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Disk); i { + switch v := v.(*BackupStatusRequest); i { case 0: return &v.state case 1: @@ -5091,7 +5914,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskCreateRequest); i { + switch v := v.(*BackupStatusResponse); i { case 0: return &v.state case 1: @@ -5103,7 +5926,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskGetRequest); i { + switch v := v.(*EngineBackupRestoreRequest); i { case 0: return &v.state case 1: @@ -5115,7 +5938,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskDeleteRequest); i { + switch v := v.(*EngineBackupRestoreResponse); i { case 0: return &v.state case 1: @@ -5127,7 +5950,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogSetLevelRequest); i { + switch v := v.(*EngineBackupRestoreFinishRequest); i { case 0: return &v.state case 1: @@ -5139,7 +5962,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogSetFlagsRequest); i { + switch v := v.(*ReplicaBackupRestoreRequest); i { case 0: return &v.state case 1: @@ -5151,7 +5974,7 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogGetLevelResponse); i { + switch v := v.(*RestoreStatusRequest); i { case 0: return &v.state case 1: @@ -5163,6 +5986,126 @@ func file_spdkrpc_spdk_proto_init() { } } file_spdkrpc_spdk_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicaRestoreStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicaRestoreStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestoreStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Disk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiskCreateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiskGetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiskDeleteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogSetLevelRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogSetFlagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogGetLevelResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spdkrpc_spdk_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogGetFlagsResponse); i { case 0: return &v.state @@ -5181,7 +6124,7 @@ func file_spdkrpc_spdk_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spdkrpc_spdk_proto_rawDesc, NumEnums: 1, - NumMessages: 65, + NumMessages: 75, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk_grpc.pb.go b/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk_grpc.pb.go index 8e26a6a11a..ad2c8e6712 100644 --- a/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk_grpc.pb.go +++ b/vendor/github.com/longhorn/types/pkg/generated/spdkrpc/spdk_grpc.pb.go @@ -20,55 +20,58 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - SPDKService_ReplicaCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaCreate" - SPDKService_ReplicaDelete_FullMethodName = "/spdkrpc.SPDKService/ReplicaDelete" - SPDKService_ReplicaGet_FullMethodName = "/spdkrpc.SPDKService/ReplicaGet" - SPDKService_ReplicaSnapshotCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotCreate" - SPDKService_ReplicaSnapshotDelete_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotDelete" - SPDKService_ReplicaSnapshotRevert_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotRevert" - SPDKService_ReplicaList_FullMethodName = "/spdkrpc.SPDKService/ReplicaList" - SPDKService_ReplicaWatch_FullMethodName = "/spdkrpc.SPDKService/ReplicaWatch" - SPDKService_ReplicaRebuildingSrcStart_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcStart" - SPDKService_ReplicaRebuildingSrcFinish_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcFinish" - SPDKService_ReplicaRebuildingSrcAttach_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcAttach" - SPDKService_ReplicaRebuildingSrcDetach_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcDetach" - SPDKService_ReplicaSnapshotShallowCopy_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotShallowCopy" - SPDKService_ReplicaRebuildingDstStart_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstStart" - SPDKService_ReplicaRebuildingDstFinish_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstFinish" - SPDKService_ReplicaRebuildingDstSnapshotCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstSnapshotCreate" - SPDKService_ReplicaRebuildingDstSnapshotRevert_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstSnapshotRevert" - SPDKService_ReplicaBackupCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaBackupCreate" - SPDKService_ReplicaBackupStatus_FullMethodName = "/spdkrpc.SPDKService/ReplicaBackupStatus" - SPDKService_ReplicaBackupRestore_FullMethodName = "/spdkrpc.SPDKService/ReplicaBackupRestore" - SPDKService_ReplicaRestoreStatus_FullMethodName = "/spdkrpc.SPDKService/ReplicaRestoreStatus" - SPDKService_EngineCreate_FullMethodName = "/spdkrpc.SPDKService/EngineCreate" - SPDKService_EngineDelete_FullMethodName = "/spdkrpc.SPDKService/EngineDelete" - SPDKService_EngineGet_FullMethodName = "/spdkrpc.SPDKService/EngineGet" - SPDKService_EngineSuspend_FullMethodName = "/spdkrpc.SPDKService/EngineSuspend" - SPDKService_EngineResume_FullMethodName = "/spdkrpc.SPDKService/EngineResume" - SPDKService_EngineSwitchOverTarget_FullMethodName = "/spdkrpc.SPDKService/EngineSwitchOverTarget" - SPDKService_EngineDeleteTarget_FullMethodName = "/spdkrpc.SPDKService/EngineDeleteTarget" - SPDKService_EngineSnapshotCreate_FullMethodName = "/spdkrpc.SPDKService/EngineSnapshotCreate" - SPDKService_EngineSnapshotDelete_FullMethodName = "/spdkrpc.SPDKService/EngineSnapshotDelete" - SPDKService_EngineSnapshotRevert_FullMethodName = "/spdkrpc.SPDKService/EngineSnapshotRevert" - SPDKService_EngineList_FullMethodName = "/spdkrpc.SPDKService/EngineList" - SPDKService_EngineWatch_FullMethodName = "/spdkrpc.SPDKService/EngineWatch" - SPDKService_EngineReplicaList_FullMethodName = "/spdkrpc.SPDKService/EngineReplicaList" - SPDKService_EngineReplicaAdd_FullMethodName = "/spdkrpc.SPDKService/EngineReplicaAdd" - SPDKService_EngineReplicaDelete_FullMethodName = "/spdkrpc.SPDKService/EngineReplicaDelete" - SPDKService_EngineBackupCreate_FullMethodName = "/spdkrpc.SPDKService/EngineBackupCreate" - SPDKService_EngineBackupStatus_FullMethodName = "/spdkrpc.SPDKService/EngineBackupStatus" - SPDKService_EngineBackupRestore_FullMethodName = "/spdkrpc.SPDKService/EngineBackupRestore" - SPDKService_EngineBackupRestoreFinish_FullMethodName = "/spdkrpc.SPDKService/EngineBackupRestoreFinish" - SPDKService_EngineRestoreStatus_FullMethodName = "/spdkrpc.SPDKService/EngineRestoreStatus" - SPDKService_DiskCreate_FullMethodName = "/spdkrpc.SPDKService/DiskCreate" - SPDKService_DiskDelete_FullMethodName = "/spdkrpc.SPDKService/DiskDelete" - SPDKService_DiskGet_FullMethodName = "/spdkrpc.SPDKService/DiskGet" - SPDKService_LogSetLevel_FullMethodName = "/spdkrpc.SPDKService/LogSetLevel" - SPDKService_LogSetFlags_FullMethodName = "/spdkrpc.SPDKService/LogSetFlags" - SPDKService_LogGetLevel_FullMethodName = "/spdkrpc.SPDKService/LogGetLevel" - SPDKService_LogGetFlags_FullMethodName = "/spdkrpc.SPDKService/LogGetFlags" - SPDKService_VersionDetailGet_FullMethodName = "/spdkrpc.SPDKService/VersionDetailGet" + SPDKService_ReplicaCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaCreate" + SPDKService_ReplicaDelete_FullMethodName = "/spdkrpc.SPDKService/ReplicaDelete" + SPDKService_ReplicaGet_FullMethodName = "/spdkrpc.SPDKService/ReplicaGet" + SPDKService_ReplicaSnapshotCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotCreate" + SPDKService_ReplicaSnapshotDelete_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotDelete" + SPDKService_ReplicaSnapshotRevert_FullMethodName = "/spdkrpc.SPDKService/ReplicaSnapshotRevert" + SPDKService_ReplicaList_FullMethodName = "/spdkrpc.SPDKService/ReplicaList" + SPDKService_ReplicaWatch_FullMethodName = "/spdkrpc.SPDKService/ReplicaWatch" + SPDKService_ReplicaRebuildingSrcStart_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcStart" + SPDKService_ReplicaRebuildingSrcFinish_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcFinish" + SPDKService_ReplicaRebuildingSrcAttach_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcAttach" + SPDKService_ReplicaRebuildingSrcDetach_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcDetach" + SPDKService_ReplicaRebuildingSrcShallowCopyStart_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcShallowCopyStart" + SPDKService_ReplicaRebuildingSrcShallowCopyCheck_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingSrcShallowCopyCheck" + SPDKService_ReplicaRebuildingDstStart_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstStart" + SPDKService_ReplicaRebuildingDstFinish_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstFinish" + SPDKService_ReplicaRebuildingDstShallowCopyStart_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstShallowCopyStart" + SPDKService_ReplicaRebuildingDstShallowCopyCheck_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstShallowCopyCheck" + SPDKService_ReplicaRebuildingDstSnapshotCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstSnapshotCreate" + SPDKService_ReplicaRebuildingDstSnapshotRevert_FullMethodName = "/spdkrpc.SPDKService/ReplicaRebuildingDstSnapshotRevert" + SPDKService_ReplicaBackupCreate_FullMethodName = "/spdkrpc.SPDKService/ReplicaBackupCreate" + SPDKService_ReplicaBackupStatus_FullMethodName = "/spdkrpc.SPDKService/ReplicaBackupStatus" + SPDKService_ReplicaBackupRestore_FullMethodName = "/spdkrpc.SPDKService/ReplicaBackupRestore" + SPDKService_ReplicaRestoreStatus_FullMethodName = "/spdkrpc.SPDKService/ReplicaRestoreStatus" + SPDKService_EngineCreate_FullMethodName = "/spdkrpc.SPDKService/EngineCreate" + SPDKService_EngineDelete_FullMethodName = "/spdkrpc.SPDKService/EngineDelete" + SPDKService_EngineGet_FullMethodName = "/spdkrpc.SPDKService/EngineGet" + SPDKService_EngineSuspend_FullMethodName = "/spdkrpc.SPDKService/EngineSuspend" + SPDKService_EngineResume_FullMethodName = "/spdkrpc.SPDKService/EngineResume" + SPDKService_EngineSwitchOverTarget_FullMethodName = "/spdkrpc.SPDKService/EngineSwitchOverTarget" + SPDKService_EngineDeleteTarget_FullMethodName = "/spdkrpc.SPDKService/EngineDeleteTarget" + SPDKService_EngineSnapshotCreate_FullMethodName = "/spdkrpc.SPDKService/EngineSnapshotCreate" + SPDKService_EngineSnapshotDelete_FullMethodName = "/spdkrpc.SPDKService/EngineSnapshotDelete" + SPDKService_EngineSnapshotRevert_FullMethodName = "/spdkrpc.SPDKService/EngineSnapshotRevert" + SPDKService_EngineList_FullMethodName = "/spdkrpc.SPDKService/EngineList" + SPDKService_EngineWatch_FullMethodName = "/spdkrpc.SPDKService/EngineWatch" + SPDKService_EngineReplicaList_FullMethodName = "/spdkrpc.SPDKService/EngineReplicaList" + SPDKService_EngineReplicaAdd_FullMethodName = "/spdkrpc.SPDKService/EngineReplicaAdd" + SPDKService_EngineReplicaDelete_FullMethodName = "/spdkrpc.SPDKService/EngineReplicaDelete" + SPDKService_EngineBackupCreate_FullMethodName = "/spdkrpc.SPDKService/EngineBackupCreate" + SPDKService_EngineBackupStatus_FullMethodName = "/spdkrpc.SPDKService/EngineBackupStatus" + SPDKService_EngineBackupRestore_FullMethodName = "/spdkrpc.SPDKService/EngineBackupRestore" + SPDKService_EngineBackupRestoreFinish_FullMethodName = "/spdkrpc.SPDKService/EngineBackupRestoreFinish" + SPDKService_EngineRestoreStatus_FullMethodName = "/spdkrpc.SPDKService/EngineRestoreStatus" + SPDKService_DiskCreate_FullMethodName = "/spdkrpc.SPDKService/DiskCreate" + SPDKService_DiskDelete_FullMethodName = "/spdkrpc.SPDKService/DiskDelete" + SPDKService_DiskGet_FullMethodName = "/spdkrpc.SPDKService/DiskGet" + SPDKService_LogSetLevel_FullMethodName = "/spdkrpc.SPDKService/LogSetLevel" + SPDKService_LogSetFlags_FullMethodName = "/spdkrpc.SPDKService/LogSetFlags" + SPDKService_LogGetLevel_FullMethodName = "/spdkrpc.SPDKService/LogGetLevel" + SPDKService_LogGetFlags_FullMethodName = "/spdkrpc.SPDKService/LogGetFlags" + SPDKService_VersionDetailGet_FullMethodName = "/spdkrpc.SPDKService/VersionDetailGet" ) // SPDKServiceClient is the client API for SPDKService service. @@ -83,15 +86,18 @@ type SPDKServiceClient interface { ReplicaSnapshotRevert(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) ReplicaList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ReplicaListResponse, error) ReplicaWatch(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (SPDKService_ReplicaWatchClient, error) - ReplicaRebuildingSrcStart(ctx context.Context, in *ReplicaRebuildingSrcStartRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + ReplicaRebuildingSrcStart(ctx context.Context, in *ReplicaRebuildingSrcStartRequest, opts ...grpc.CallOption) (*ReplicaRebuildingSrcStartResponse, error) ReplicaRebuildingSrcFinish(ctx context.Context, in *ReplicaRebuildingSrcFinishRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) ReplicaRebuildingSrcAttach(ctx context.Context, in *ReplicaRebuildingSrcAttachRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) ReplicaRebuildingSrcDetach(ctx context.Context, in *ReplicaRebuildingSrcDetachRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) - ReplicaSnapshotShallowCopy(ctx context.Context, in *ReplicaSnapshotShallowCopyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + ReplicaRebuildingSrcShallowCopyStart(ctx context.Context, in *ReplicaRebuildingSrcShallowCopyStartRequest, opts ...grpc.CallOption) (*ReplicaRebuildingSrcShallowCopyStartResponse, error) + ReplicaRebuildingSrcShallowCopyCheck(ctx context.Context, in *ReplicaRebuildingSrcShallowCopyCheckRequest, opts ...grpc.CallOption) (*ReplicaRebuildingSrcShallowCopyCheckResponse, error) ReplicaRebuildingDstStart(ctx context.Context, in *ReplicaRebuildingDstStartRequest, opts ...grpc.CallOption) (*ReplicaRebuildingDstStartResponse, error) ReplicaRebuildingDstFinish(ctx context.Context, in *ReplicaRebuildingDstFinishRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + ReplicaRebuildingDstShallowCopyStart(ctx context.Context, in *ReplicaRebuildingDstShallowCopyStartRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + ReplicaRebuildingDstShallowCopyCheck(ctx context.Context, in *ReplicaRebuildingDstShallowCopyCheckRequest, opts ...grpc.CallOption) (*ReplicaRebuildingDstShallowCopyCheckResponse, error) ReplicaRebuildingDstSnapshotCreate(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) - ReplicaRebuildingDstSnapshotRevert(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + ReplicaRebuildingDstSnapshotRevert(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*ReplicaRebuildingDstSnapshotRevertResponse, error) ReplicaBackupCreate(ctx context.Context, in *BackupCreateRequest, opts ...grpc.CallOption) (*BackupCreateResponse, error) ReplicaBackupStatus(ctx context.Context, in *BackupStatusRequest, opts ...grpc.CallOption) (*BackupStatusResponse, error) ReplicaBackupRestore(ctx context.Context, in *ReplicaBackupRestoreRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) @@ -229,8 +235,8 @@ func (x *sPDKServiceReplicaWatchClient) Recv() (*emptypb.Empty, error) { return m, nil } -func (c *sPDKServiceClient) ReplicaRebuildingSrcStart(ctx context.Context, in *ReplicaRebuildingSrcStartRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *sPDKServiceClient) ReplicaRebuildingSrcStart(ctx context.Context, in *ReplicaRebuildingSrcStartRequest, opts ...grpc.CallOption) (*ReplicaRebuildingSrcStartResponse, error) { + out := new(ReplicaRebuildingSrcStartResponse) err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingSrcStart_FullMethodName, in, out, opts...) if err != nil { return nil, err @@ -265,9 +271,18 @@ func (c *sPDKServiceClient) ReplicaRebuildingSrcDetach(ctx context.Context, in * return out, nil } -func (c *sPDKServiceClient) ReplicaSnapshotShallowCopy(ctx context.Context, in *ReplicaSnapshotShallowCopyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, SPDKService_ReplicaSnapshotShallowCopy_FullMethodName, in, out, opts...) +func (c *sPDKServiceClient) ReplicaRebuildingSrcShallowCopyStart(ctx context.Context, in *ReplicaRebuildingSrcShallowCopyStartRequest, opts ...grpc.CallOption) (*ReplicaRebuildingSrcShallowCopyStartResponse, error) { + out := new(ReplicaRebuildingSrcShallowCopyStartResponse) + err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingSrcShallowCopyStart_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sPDKServiceClient) ReplicaRebuildingSrcShallowCopyCheck(ctx context.Context, in *ReplicaRebuildingSrcShallowCopyCheckRequest, opts ...grpc.CallOption) (*ReplicaRebuildingSrcShallowCopyCheckResponse, error) { + out := new(ReplicaRebuildingSrcShallowCopyCheckResponse) + err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingSrcShallowCopyCheck_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -292,6 +307,24 @@ func (c *sPDKServiceClient) ReplicaRebuildingDstFinish(ctx context.Context, in * return out, nil } +func (c *sPDKServiceClient) ReplicaRebuildingDstShallowCopyStart(ctx context.Context, in *ReplicaRebuildingDstShallowCopyStartRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingDstShallowCopyStart_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sPDKServiceClient) ReplicaRebuildingDstShallowCopyCheck(ctx context.Context, in *ReplicaRebuildingDstShallowCopyCheckRequest, opts ...grpc.CallOption) (*ReplicaRebuildingDstShallowCopyCheckResponse, error) { + out := new(ReplicaRebuildingDstShallowCopyCheckResponse) + err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingDstShallowCopyCheck_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *sPDKServiceClient) ReplicaRebuildingDstSnapshotCreate(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingDstSnapshotCreate_FullMethodName, in, out, opts...) @@ -301,8 +334,8 @@ func (c *sPDKServiceClient) ReplicaRebuildingDstSnapshotCreate(ctx context.Conte return out, nil } -func (c *sPDKServiceClient) ReplicaRebuildingDstSnapshotRevert(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *sPDKServiceClient) ReplicaRebuildingDstSnapshotRevert(ctx context.Context, in *SnapshotRequest, opts ...grpc.CallOption) (*ReplicaRebuildingDstSnapshotRevertResponse, error) { + out := new(ReplicaRebuildingDstSnapshotRevertResponse) err := c.cc.Invoke(ctx, SPDKService_ReplicaRebuildingDstSnapshotRevert_FullMethodName, in, out, opts...) if err != nil { return nil, err @@ -633,15 +666,18 @@ type SPDKServiceServer interface { ReplicaSnapshotRevert(context.Context, *SnapshotRequest) (*emptypb.Empty, error) ReplicaList(context.Context, *emptypb.Empty) (*ReplicaListResponse, error) ReplicaWatch(*emptypb.Empty, SPDKService_ReplicaWatchServer) error - ReplicaRebuildingSrcStart(context.Context, *ReplicaRebuildingSrcStartRequest) (*emptypb.Empty, error) + ReplicaRebuildingSrcStart(context.Context, *ReplicaRebuildingSrcStartRequest) (*ReplicaRebuildingSrcStartResponse, error) ReplicaRebuildingSrcFinish(context.Context, *ReplicaRebuildingSrcFinishRequest) (*emptypb.Empty, error) ReplicaRebuildingSrcAttach(context.Context, *ReplicaRebuildingSrcAttachRequest) (*emptypb.Empty, error) ReplicaRebuildingSrcDetach(context.Context, *ReplicaRebuildingSrcDetachRequest) (*emptypb.Empty, error) - ReplicaSnapshotShallowCopy(context.Context, *ReplicaSnapshotShallowCopyRequest) (*emptypb.Empty, error) + ReplicaRebuildingSrcShallowCopyStart(context.Context, *ReplicaRebuildingSrcShallowCopyStartRequest) (*ReplicaRebuildingSrcShallowCopyStartResponse, error) + ReplicaRebuildingSrcShallowCopyCheck(context.Context, *ReplicaRebuildingSrcShallowCopyCheckRequest) (*ReplicaRebuildingSrcShallowCopyCheckResponse, error) ReplicaRebuildingDstStart(context.Context, *ReplicaRebuildingDstStartRequest) (*ReplicaRebuildingDstStartResponse, error) ReplicaRebuildingDstFinish(context.Context, *ReplicaRebuildingDstFinishRequest) (*emptypb.Empty, error) + ReplicaRebuildingDstShallowCopyStart(context.Context, *ReplicaRebuildingDstShallowCopyStartRequest) (*emptypb.Empty, error) + ReplicaRebuildingDstShallowCopyCheck(context.Context, *ReplicaRebuildingDstShallowCopyCheckRequest) (*ReplicaRebuildingDstShallowCopyCheckResponse, error) ReplicaRebuildingDstSnapshotCreate(context.Context, *SnapshotRequest) (*emptypb.Empty, error) - ReplicaRebuildingDstSnapshotRevert(context.Context, *SnapshotRequest) (*emptypb.Empty, error) + ReplicaRebuildingDstSnapshotRevert(context.Context, *SnapshotRequest) (*ReplicaRebuildingDstSnapshotRevertResponse, error) ReplicaBackupCreate(context.Context, *BackupCreateRequest) (*BackupCreateResponse, error) ReplicaBackupStatus(context.Context, *BackupStatusRequest) (*BackupStatusResponse, error) ReplicaBackupRestore(context.Context, *ReplicaBackupRestoreRequest) (*emptypb.Empty, error) @@ -705,7 +741,7 @@ func (UnimplementedSPDKServiceServer) ReplicaList(context.Context, *emptypb.Empt func (UnimplementedSPDKServiceServer) ReplicaWatch(*emptypb.Empty, SPDKService_ReplicaWatchServer) error { return status.Errorf(codes.Unimplemented, "method ReplicaWatch not implemented") } -func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcStart(context.Context, *ReplicaRebuildingSrcStartRequest) (*emptypb.Empty, error) { +func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcStart(context.Context, *ReplicaRebuildingSrcStartRequest) (*ReplicaRebuildingSrcStartResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingSrcStart not implemented") } func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcFinish(context.Context, *ReplicaRebuildingSrcFinishRequest) (*emptypb.Empty, error) { @@ -717,8 +753,11 @@ func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcAttach(context.Context func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcDetach(context.Context, *ReplicaRebuildingSrcDetachRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingSrcDetach not implemented") } -func (UnimplementedSPDKServiceServer) ReplicaSnapshotShallowCopy(context.Context, *ReplicaSnapshotShallowCopyRequest) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method ReplicaSnapshotShallowCopy not implemented") +func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcShallowCopyStart(context.Context, *ReplicaRebuildingSrcShallowCopyStartRequest) (*ReplicaRebuildingSrcShallowCopyStartResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingSrcShallowCopyStart not implemented") +} +func (UnimplementedSPDKServiceServer) ReplicaRebuildingSrcShallowCopyCheck(context.Context, *ReplicaRebuildingSrcShallowCopyCheckRequest) (*ReplicaRebuildingSrcShallowCopyCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingSrcShallowCopyCheck not implemented") } func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstStart(context.Context, *ReplicaRebuildingDstStartRequest) (*ReplicaRebuildingDstStartResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingDstStart not implemented") @@ -726,10 +765,16 @@ func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstStart(context.Context, func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstFinish(context.Context, *ReplicaRebuildingDstFinishRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingDstFinish not implemented") } +func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstShallowCopyStart(context.Context, *ReplicaRebuildingDstShallowCopyStartRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingDstShallowCopyStart not implemented") +} +func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstShallowCopyCheck(context.Context, *ReplicaRebuildingDstShallowCopyCheckRequest) (*ReplicaRebuildingDstShallowCopyCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingDstShallowCopyCheck not implemented") +} func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstSnapshotCreate(context.Context, *SnapshotRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingDstSnapshotCreate not implemented") } -func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstSnapshotRevert(context.Context, *SnapshotRequest) (*emptypb.Empty, error) { +func (UnimplementedSPDKServiceServer) ReplicaRebuildingDstSnapshotRevert(context.Context, *SnapshotRequest) (*ReplicaRebuildingDstSnapshotRevertResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicaRebuildingDstSnapshotRevert not implemented") } func (UnimplementedSPDKServiceServer) ReplicaBackupCreate(context.Context, *BackupCreateRequest) (*BackupCreateResponse, error) { @@ -1060,20 +1105,38 @@ func _SPDKService_ReplicaRebuildingSrcDetach_Handler(srv interface{}, ctx contex return interceptor(ctx, in, info, handler) } -func _SPDKService_ReplicaSnapshotShallowCopy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ReplicaSnapshotShallowCopyRequest) +func _SPDKService_ReplicaRebuildingSrcShallowCopyStart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplicaRebuildingSrcShallowCopyStartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SPDKServiceServer).ReplicaRebuildingSrcShallowCopyStart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SPDKService_ReplicaRebuildingSrcShallowCopyStart_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SPDKServiceServer).ReplicaRebuildingSrcShallowCopyStart(ctx, req.(*ReplicaRebuildingSrcShallowCopyStartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SPDKService_ReplicaRebuildingSrcShallowCopyCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplicaRebuildingSrcShallowCopyCheckRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(SPDKServiceServer).ReplicaSnapshotShallowCopy(ctx, in) + return srv.(SPDKServiceServer).ReplicaRebuildingSrcShallowCopyCheck(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: SPDKService_ReplicaSnapshotShallowCopy_FullMethodName, + FullMethod: SPDKService_ReplicaRebuildingSrcShallowCopyCheck_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(SPDKServiceServer).ReplicaSnapshotShallowCopy(ctx, req.(*ReplicaSnapshotShallowCopyRequest)) + return srv.(SPDKServiceServer).ReplicaRebuildingSrcShallowCopyCheck(ctx, req.(*ReplicaRebuildingSrcShallowCopyCheckRequest)) } return interceptor(ctx, in, info, handler) } @@ -1114,6 +1177,42 @@ func _SPDKService_ReplicaRebuildingDstFinish_Handler(srv interface{}, ctx contex return interceptor(ctx, in, info, handler) } +func _SPDKService_ReplicaRebuildingDstShallowCopyStart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplicaRebuildingDstShallowCopyStartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SPDKServiceServer).ReplicaRebuildingDstShallowCopyStart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SPDKService_ReplicaRebuildingDstShallowCopyStart_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SPDKServiceServer).ReplicaRebuildingDstShallowCopyStart(ctx, req.(*ReplicaRebuildingDstShallowCopyStartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SPDKService_ReplicaRebuildingDstShallowCopyCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplicaRebuildingDstShallowCopyCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SPDKServiceServer).ReplicaRebuildingDstShallowCopyCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SPDKService_ReplicaRebuildingDstShallowCopyCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SPDKServiceServer).ReplicaRebuildingDstShallowCopyCheck(ctx, req.(*ReplicaRebuildingDstShallowCopyCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _SPDKService_ReplicaRebuildingDstSnapshotCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SnapshotRequest) if err := dec(in); err != nil { @@ -1781,8 +1880,12 @@ var SPDKService_ServiceDesc = grpc.ServiceDesc{ Handler: _SPDKService_ReplicaRebuildingSrcDetach_Handler, }, { - MethodName: "ReplicaSnapshotShallowCopy", - Handler: _SPDKService_ReplicaSnapshotShallowCopy_Handler, + MethodName: "ReplicaRebuildingSrcShallowCopyStart", + Handler: _SPDKService_ReplicaRebuildingSrcShallowCopyStart_Handler, + }, + { + MethodName: "ReplicaRebuildingSrcShallowCopyCheck", + Handler: _SPDKService_ReplicaRebuildingSrcShallowCopyCheck_Handler, }, { MethodName: "ReplicaRebuildingDstStart", @@ -1792,6 +1895,14 @@ var SPDKService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReplicaRebuildingDstFinish", Handler: _SPDKService_ReplicaRebuildingDstFinish_Handler, }, + { + MethodName: "ReplicaRebuildingDstShallowCopyStart", + Handler: _SPDKService_ReplicaRebuildingDstShallowCopyStart_Handler, + }, + { + MethodName: "ReplicaRebuildingDstShallowCopyCheck", + Handler: _SPDKService_ReplicaRebuildingDstShallowCopyCheck_Handler, + }, { MethodName: "ReplicaRebuildingDstSnapshotCreate", Handler: _SPDKService_ReplicaRebuildingDstSnapshotCreate_Handler, diff --git a/vendor/modules.txt b/vendor/modules.txt index f50e32145d..46c961a242 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -259,7 +259,7 @@ github.com/longhorn/go-iscsi-helper/iscsidev github.com/longhorn/go-iscsi-helper/longhorndev github.com/longhorn/go-iscsi-helper/types github.com/longhorn/go-iscsi-helper/util -# github.com/longhorn/go-spdk-helper v0.0.0-20240720064915-d2ce0846d2a7 +# github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5 ## explicit; go 1.22.0 github.com/longhorn/go-spdk-helper/pkg/types # github.com/longhorn/longhorn-engine v1.7.0-rc1 @@ -269,7 +269,7 @@ github.com/longhorn/longhorn-engine/pkg/meta github.com/longhorn/longhorn-engine/pkg/replica/client github.com/longhorn/longhorn-engine/pkg/types github.com/longhorn/longhorn-engine/pkg/util -# github.com/longhorn/longhorn-instance-manager v1.7.0-rc1 +# github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784 ## explicit; go 1.22.2 github.com/longhorn/longhorn-instance-manager/pkg/api github.com/longhorn/longhorn-instance-manager/pkg/client @@ -280,7 +280,7 @@ github.com/longhorn/longhorn-instance-manager/pkg/util ## explicit; go 1.22.2 github.com/longhorn/longhorn-share-manager/pkg/client github.com/longhorn/longhorn-share-manager/pkg/types -# github.com/longhorn/types v0.0.0-20240706151541-33cb010c3544 +# github.com/longhorn/types v0.0.0-20240723142222-56701c990023 ## explicit; go 1.21 github.com/longhorn/types/pkg/generated/bimrpc github.com/longhorn/types/pkg/generated/enginerpc From c7fa2b41ef994b0150c59e3a4e75978480fa863f Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Tue, 21 May 2024 00:59:53 -0700 Subject: [PATCH 2/6] engineapi: Remove deprecate input for SPDK replica create Now the SPDK replica head will be blindly exposed as a NVMf bdev no matter if it is a local one. Longhorn 7199 Signed-off-by: Shuo Wu (cherry picked from commit d2aea67280e2113f398605a532cfc1ed8628e1e0) --- controller/replica_controller.go | 1 - engineapi/instance_manager.go | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/controller/replica_controller.go b/controller/replica_controller.go index 83691ae62b..23d68b7153 100644 --- a/controller/replica_controller.go +++ b/controller/replica_controller.go @@ -386,7 +386,6 @@ func (rc *ReplicaController) CreateInstance(obj interface{}) (*longhorn.Instance DataPath: dataPath, BackingImagePath: backingImagePath, DataLocality: v.Spec.DataLocality, - ExposeRequired: true, ImIP: im.Status.IP, EngineCLIAPIVersion: cliAPIVersion, }) diff --git a/engineapi/instance_manager.go b/engineapi/instance_manager.go index a2ce5278f8..ca28b2726a 100644 --- a/engineapi/instance_manager.go +++ b/engineapi/instance_manager.go @@ -517,7 +517,6 @@ type ReplicaInstanceCreateRequest struct { DataPath string BackingImagePath string DataLocality longhorn.DataLocality - ExposeRequired bool ImIP string EngineCLIAPIVersion int } @@ -562,9 +561,8 @@ func (c *InstanceManagerClient) ReplicaInstanceCreate(req *ReplicaInstanceCreate BinaryArgs: args, Replica: imclient.ReplicaCreateRequest{ - DiskName: req.DiskName, - DiskUUID: req.Replica.Spec.DiskID, - ExposeRequired: req.ExposeRequired, + DiskName: req.DiskName, + DiskUUID: req.Replica.Spec.DiskID, }, }) if err != nil { From 4210d58b47557549f44cb313afafdaf4e5a1a3e5 Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Tue, 21 May 2024 16:56:59 -0700 Subject: [PATCH 3/6] controller: Enable SPDK volume online rebuilding Longhorn 7199 Signed-off-by: Shuo Wu (cherry picked from commit c59b4dc54f585d1d2cd1228bb2c22a8f1ef101e9) --- controller/volume_controller.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/controller/volume_controller.go b/controller/volume_controller.go index b2956d02ff..ca4b22dadb 100644 --- a/controller/volume_controller.go +++ b/controller/volume_controller.go @@ -3640,12 +3640,6 @@ func (c *VolumeController) createReplica(replica *longhorn.Replica, v *longhorn. if isRebuildingReplica { // TODO: reuse failed replica for replica rebuilding of SPDK volumes - if types.IsDataEngineV2(v.Spec.DataEngine) { - if !v.Spec.DisableFrontend { - log.Tracef("Online replica rebuilding for replica %v is not supported for SPDK volumes", replica.Name) - return nil - } - } log.Infof("A new replica %v will be replenished during rebuilding", replica.Name) // Prevent this new replica from being reused after rebuilding failure. From e159f357db81b25747a09762dc8a7899d817cead Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Mon, 22 Jul 2024 23:28:02 -0700 Subject: [PATCH 4/6] controller: Add wait loop for the async SPDK online rebuilding Longhorn 7199 Signed-off-by: Shuo Wu (cherry picked from commit 7d4cfd049b3b1cfa8fb236dd86af422390e97e50) --- controller/engine_controller.go | 64 +++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/controller/engine_controller.go b/controller/engine_controller.go index 9703a77386..952ca238b8 100644 --- a/controller/engine_controller.go +++ b/controller/engine_controller.go @@ -1948,6 +1948,12 @@ func (ec *EngineController) startRebuilding(e *longhorn.Engine, replicaName, add "Start rebuilding replica %v with Address %v for normal engine %v and volume %v", replicaName, addr, e.Name, e.Spec.VolumeName) err = engineClientProxy.ReplicaAdd(e, replicaName, replicaURL, false, fastReplicaRebuild, localSync, fileSyncHTTPClientTimeout, grpcTimeoutSeconds) } + + // For v2 engine, the rebuilding is an async call. We need to wait for the rebuilding start then complete here + if err == nil && types.IsDataEngineV2(e.Spec.DataEngine) { + err = ec.waitForV2EngineRebuild(e, replicaName, grpcTimeoutSeconds) + } + if err != nil { replicaRebuildErrMsg := err.Error() @@ -2121,6 +2127,64 @@ func getReplicaRebuildFailedReasonFromError(errMsg string) (string, longhorn.Con } } +func (ec *EngineController) waitForV2EngineRebuild(e *longhorn.Engine, replicaName string, timeout int64) (err error) { + if !types.IsDataEngineV2(e.Spec.DataEngine) { + return nil + } + + ticker := time.NewTicker(EnginePollInterval) + defer ticker.Stop() + timer := time.NewTimer(time.Duration(timeout) * time.Second) + defer timer.Stop() + for { + select { + case <-ticker.C: + e, err = ec.ds.GetEngineRO(e.Name) + if err != nil { + // There is no need to continue if the engine is not found + if apierrors.IsNotFound(err) { + return err + } + // There may be something wrong with the indexer or the API sever, will retry + continue + } + if e.Spec.ReplicaAddressMap[replicaName] == "" { + return fmt.Errorf("unknown replica %v for engine", replicaName) + } + // There is no need to continue when the replica is not found or the replica is not in a valid state for rebuilding + r, err := ec.ds.GetReplicaRO(replicaName) + if err != nil { + return err + } + if r.Status.CurrentState != longhorn.InstanceStateRunning { + return fmt.Errorf("replica %v is state %s, which is invalid for rebuilding", replicaName, r.Status.CurrentState) + } + if e.Status.ReplicaModeMap[replicaName] == longhorn.ReplicaModeRW { + return nil + } + if e.Status.ReplicaModeMap[replicaName] == longhorn.ReplicaModeERR { + return fmt.Errorf("replica %v is in ERR mode, which is invalid for rebuilding", replicaName) + } + if e.Status.ReplicaModeMap[replicaName] == "" { + continue + } + // For a rebuilding replica (with mode WO), there should be a corresponding rebuilding status + rebuildingStatus := e.Status.RebuildStatus[engineapi.GetBackendReplicaURL(e.Status.CurrentReplicaAddressMap[replicaName])] + if rebuildingStatus == nil { + continue + } + if rebuildingStatus.State == engineapi.ProcessStateError || rebuildingStatus.Error != "" { + return fmt.Errorf(rebuildingStatus.Error) + } + if rebuildingStatus.State == engineapi.ProcessStateComplete { + return nil + } + case <-timer.C: + return fmt.Errorf("timeout waiting for replica %v to be rebuilt", replicaName) + } + } +} + func (ec *EngineController) Upgrade(e *longhorn.Engine, log *logrus.Entry) (err error) { defer func() { err = errors.Wrapf(err, "failed to live upgrade image for %v", e.Name) From e2d127f21ee1082112647ee83b482216ebec8c7f Mon Sep 17 00:00:00 2001 From: Shuo Wu Date: Tue, 21 May 2024 17:01:21 -0700 Subject: [PATCH 5/6] scheduler: Disable failed replica reusage for SPDK Longhorn 7199 Signed-off-by: Shuo Wu (cherry picked from commit 45bef51471cb8a72a454605b6e758da0ee35e101) --- controller/volume_controller.go | 4 ++++ scheduler/replica_scheduler.go | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/controller/volume_controller.go b/controller/volume_controller.go index ca4b22dadb..b675f8fc6b 100644 --- a/controller/volume_controller.go +++ b/controller/volume_controller.go @@ -4836,6 +4836,10 @@ func (c *VolumeController) shouldCleanUpFailedReplica(v *longhorn.Volume, r *lon log.Warnf("Replica %v failed to rebuild too many times", r.Name) return true } + // TODO: Remove it once we can reuse failed replicas during v2 rebuilding + if types.IsDataEngineV2(v.Spec.DataEngine) { + return true + } // Failed too long ago to be useful during a rebuild. if v.Spec.StaleReplicaTimeout > 0 && util.TimestampAfterTimeout(r.Spec.FailedAt, time.Duration(v.Spec.StaleReplicaTimeout)*time.Minute) { diff --git a/scheduler/replica_scheduler.go b/scheduler/replica_scheduler.go index b1c1687814..7ad9403377 100644 --- a/scheduler/replica_scheduler.go +++ b/scheduler/replica_scheduler.go @@ -566,6 +566,11 @@ func filterActiveReplicas(replicas map[string]*longhorn.Replica) map[string]*lon } func (rcs *ReplicaScheduler) CheckAndReuseFailedReplica(replicas map[string]*longhorn.Replica, volume *longhorn.Volume, hardNodeAffinity string) (*longhorn.Replica, error) { + // TODO: Remove it once we can reuse failed replicas during v2 rebuilding + if types.IsDataEngineV2(volume.Spec.DataEngine) { + return nil, nil + } + replicas = filterActiveReplicas(replicas) allNodesInfo, err := rcs.getNodeInfo() @@ -654,6 +659,11 @@ func (rcs *ReplicaScheduler) RequireNewReplica(replicas map[string]*longhorn.Rep return 0 } + // TODO: Remove it once we can reuse failed replicas during v2 rebuilding + if types.IsDataEngineV2(volume.Spec.DataEngine) { + return 0 + } + timeUntilNext, timeOfNext, err := rcs.timeToReplacementReplica(volume) if err != nil { msg := "Failed to get time until replica replacement, will directly replenish a new replica" From 8bca07a26023f39597099143965a465edd155df5 Mon Sep 17 00:00:00 2001 From: Derek Su Date: Wed, 24 Jul 2024 06:08:29 +0000 Subject: [PATCH 6/6] vendor: update dependencies Signed-off-by: Derek Su --- go.mod | 2 +- go.sum | 4 ++-- vendor/modules.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 351901f3a3..7a7d499852 100644 --- a/go.mod +++ b/go.mod @@ -64,7 +64,7 @@ require ( github.com/longhorn/go-iscsi-helper v0.0.0-20240720064937-c6ce82d67032 github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5 github.com/longhorn/longhorn-engine v1.7.0-rc1 - github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784 + github.com/longhorn/longhorn-instance-manager v1.7.0-rc1.0.20240724055354-86e7fa84ef3c github.com/longhorn/longhorn-share-manager v1.7.0-rc1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 diff --git a/go.sum b/go.sum index d10bb8c82b..889cff624f 100644 --- a/go.sum +++ b/go.sum @@ -1232,8 +1232,8 @@ github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5 h1:zz0gXSR github.com/longhorn/go-spdk-helper v0.0.0-20240723045100-85e5737da4b5/go.mod h1:lt/eCeOltUM9QbMxS6qDJRr/+wvavxbLGTzkKrqyaSI= github.com/longhorn/longhorn-engine v1.7.0-rc1 h1:kQ4BwCvBemWsQvVnLdRsbiCXR3zmQBMA1J9Ezysh2q0= github.com/longhorn/longhorn-engine v1.7.0-rc1/go.mod h1:u0TZ1221YusDYA+ExdVLjLid1Ps6JuJXgh9185l5D9Y= -github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784 h1:LVtcsdIlxWcISUN5uMG9C4x9qQlRfDTNbaLFL3+R5H0= -github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784/go.mod h1:gLVS19NOiRcfxJoGBTVVdY6TntbXi/Ks6nWofoJZQsM= +github.com/longhorn/longhorn-instance-manager v1.7.0-rc1.0.20240724055354-86e7fa84ef3c h1:MxpZfeUWHvUfZ3jyI3wqDyoVk46qGdxTP37zhYABKaE= +github.com/longhorn/longhorn-instance-manager v1.7.0-rc1.0.20240724055354-86e7fa84ef3c/go.mod h1:gLVS19NOiRcfxJoGBTVVdY6TntbXi/Ks6nWofoJZQsM= github.com/longhorn/longhorn-share-manager v1.7.0-rc1 h1:LsSkSajhG8tCfORKKfwK+8XHVrT/8rI9DRWb7fuoVls= github.com/longhorn/longhorn-share-manager v1.7.0-rc1/go.mod h1:R6+NscPU4lAV5ueO7//lBCAO3en0aDbZi5KkkOSUJvk= github.com/longhorn/types v0.0.0-20240723142222-56701c990023 h1:6BYl+2rZhXjYZiBeLnWZPUgOiEoXGFA9CjcIfETdP/o= diff --git a/vendor/modules.txt b/vendor/modules.txt index 46c961a242..d793b18ce6 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -269,7 +269,7 @@ github.com/longhorn/longhorn-engine/pkg/meta github.com/longhorn/longhorn-engine/pkg/replica/client github.com/longhorn/longhorn-engine/pkg/types github.com/longhorn/longhorn-engine/pkg/util -# github.com/longhorn/longhorn-instance-manager v1.7.0-dev.0.20240724045856-8b48e7b74784 +# github.com/longhorn/longhorn-instance-manager v1.7.0-rc1.0.20240724055354-86e7fa84ef3c ## explicit; go 1.22.2 github.com/longhorn/longhorn-instance-manager/pkg/api github.com/longhorn/longhorn-instance-manager/pkg/client