api/proto/ratis/raft.pb.go (4,037 lines of code) (raw):

//* // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.24.0 // protoc v3.15.6 // source: raft.proto package ratis import ( proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 type InstallSnapshotResult int32 const ( InstallSnapshotResult_SUCCESS InstallSnapshotResult = 0 InstallSnapshotResult_NOT_LEADER InstallSnapshotResult = 1 InstallSnapshotResult_IN_PROGRESS InstallSnapshotResult = 2 InstallSnapshotResult_ALREADY_INSTALLED InstallSnapshotResult = 3 InstallSnapshotResult_CONF_MISMATCH InstallSnapshotResult = 4 ) // Enum value maps for InstallSnapshotResult. var ( InstallSnapshotResult_name = map[int32]string{ 0: "SUCCESS", 1: "NOT_LEADER", 2: "IN_PROGRESS", 3: "ALREADY_INSTALLED", 4: "CONF_MISMATCH", } InstallSnapshotResult_value = map[string]int32{ "SUCCESS": 0, "NOT_LEADER": 1, "IN_PROGRESS": 2, "ALREADY_INSTALLED": 3, "CONF_MISMATCH": 4, } ) func (x InstallSnapshotResult) Enum() *InstallSnapshotResult { p := new(InstallSnapshotResult) *p = x return p } func (x InstallSnapshotResult) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (InstallSnapshotResult) Descriptor() protoreflect.EnumDescriptor { return file_raft_proto_enumTypes[0].Descriptor() } func (InstallSnapshotResult) Type() protoreflect.EnumType { return &file_raft_proto_enumTypes[0] } func (x InstallSnapshotResult) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use InstallSnapshotResult.Descriptor instead. func (InstallSnapshotResult) EnumDescriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{0} } type ReplicationLevel int32 const ( //* Committed at the leader and replicated to the majority of peers. ReplicationLevel_MAJORITY ReplicationLevel = 0 //* Committed at the leader and replicated to all peers. //Note that ReplicationLevel.ALL implies ReplicationLevel.MAJORITY. ReplicationLevel_ALL ReplicationLevel = 1 //* Committed at majority peers. //Note that ReplicationLevel.MAJORITY_COMMITTED implies ReplicationLevel.MAJORITY. ReplicationLevel_MAJORITY_COMMITTED ReplicationLevel = 2 //* Committed at all peers. //Note that ReplicationLevel.ALL_COMMITTED implies ReplicationLevel.ALL //and ReplicationLevel.MAJORITY_COMMITTED ReplicationLevel_ALL_COMMITTED ReplicationLevel = 3 ) // Enum value maps for ReplicationLevel. var ( ReplicationLevel_name = map[int32]string{ 0: "MAJORITY", 1: "ALL", 2: "MAJORITY_COMMITTED", 3: "ALL_COMMITTED", } ReplicationLevel_value = map[string]int32{ "MAJORITY": 0, "ALL": 1, "MAJORITY_COMMITTED": 2, "ALL_COMMITTED": 3, } ) func (x ReplicationLevel) Enum() *ReplicationLevel { p := new(ReplicationLevel) *p = x return p } func (x ReplicationLevel) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ReplicationLevel) Descriptor() protoreflect.EnumDescriptor { return file_raft_proto_enumTypes[1].Descriptor() } func (ReplicationLevel) Type() protoreflect.EnumType { return &file_raft_proto_enumTypes[1] } func (x ReplicationLevel) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ReplicationLevel.Descriptor instead. func (ReplicationLevel) EnumDescriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{1} } //* Role of raft peer type RaftPeerRole int32 const ( RaftPeerRole_LEADER RaftPeerRole = 0 RaftPeerRole_CANDIDATE RaftPeerRole = 1 RaftPeerRole_FOLLOWER RaftPeerRole = 2 ) // Enum value maps for RaftPeerRole. var ( RaftPeerRole_name = map[int32]string{ 0: "LEADER", 1: "CANDIDATE", 2: "FOLLOWER", } RaftPeerRole_value = map[string]int32{ "LEADER": 0, "CANDIDATE": 1, "FOLLOWER": 2, } ) func (x RaftPeerRole) Enum() *RaftPeerRole { p := new(RaftPeerRole) *p = x return p } func (x RaftPeerRole) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RaftPeerRole) Descriptor() protoreflect.EnumDescriptor { return file_raft_proto_enumTypes[2].Descriptor() } func (RaftPeerRole) Type() protoreflect.EnumType { return &file_raft_proto_enumTypes[2] } func (x RaftPeerRole) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RaftPeerRole.Descriptor instead. func (RaftPeerRole) EnumDescriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{2} } type AppendEntriesReplyProto_AppendResult int32 const ( AppendEntriesReplyProto_SUCCESS AppendEntriesReplyProto_AppendResult = 0 AppendEntriesReplyProto_NOT_LEADER AppendEntriesReplyProto_AppendResult = 1 // the requester's term is not large enough AppendEntriesReplyProto_INCONSISTENCY AppendEntriesReplyProto_AppendResult = 2 // gap between the local log and the entries or snapshot installation in progress or ) // Enum value maps for AppendEntriesReplyProto_AppendResult. var ( AppendEntriesReplyProto_AppendResult_name = map[int32]string{ 0: "SUCCESS", 1: "NOT_LEADER", 2: "INCONSISTENCY", } AppendEntriesReplyProto_AppendResult_value = map[string]int32{ "SUCCESS": 0, "NOT_LEADER": 1, "INCONSISTENCY": 2, } ) func (x AppendEntriesReplyProto_AppendResult) Enum() *AppendEntriesReplyProto_AppendResult { p := new(AppendEntriesReplyProto_AppendResult) *p = x return p } func (x AppendEntriesReplyProto_AppendResult) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AppendEntriesReplyProto_AppendResult) Descriptor() protoreflect.EnumDescriptor { return file_raft_proto_enumTypes[3].Descriptor() } func (AppendEntriesReplyProto_AppendResult) Type() protoreflect.EnumType { return &file_raft_proto_enumTypes[3] } func (x AppendEntriesReplyProto_AppendResult) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AppendEntriesReplyProto_AppendResult.Descriptor instead. func (AppendEntriesReplyProto_AppendResult) EnumDescriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{18, 0} } type RaftPeerProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // id of the peer Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // e.g. IP address, hostname etc. } func (x *RaftPeerProto) Reset() { *x = RaftPeerProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftPeerProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftPeerProto) ProtoMessage() {} func (x *RaftPeerProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftPeerProto.ProtoReflect.Descriptor instead. func (*RaftPeerProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{0} } func (x *RaftPeerProto) GetId() []byte { if x != nil { return x.Id } return nil } func (x *RaftPeerProto) GetAddress() string { if x != nil { return x.Address } return "" } type RaftGroupIdProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *RaftGroupIdProto) Reset() { *x = RaftGroupIdProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftGroupIdProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftGroupIdProto) ProtoMessage() {} func (x *RaftGroupIdProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftGroupIdProto.ProtoReflect.Descriptor instead. func (*RaftGroupIdProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{1} } func (x *RaftGroupIdProto) GetId() []byte { if x != nil { return x.Id } return nil } type RaftGroupProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupId *RaftGroupIdProto `protobuf:"bytes,1,opt,name=groupId,proto3" json:"groupId,omitempty"` Peers []*RaftPeerProto `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } func (x *RaftGroupProto) Reset() { *x = RaftGroupProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftGroupProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftGroupProto) ProtoMessage() {} func (x *RaftGroupProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftGroupProto.ProtoReflect.Descriptor instead. func (*RaftGroupProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{2} } func (x *RaftGroupProto) GetGroupId() *RaftGroupIdProto { if x != nil { return x.GroupId } return nil } func (x *RaftGroupProto) GetPeers() []*RaftPeerProto { if x != nil { return x.Peers } return nil } type RaftGroupMemberIdProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PeerId []byte `protobuf:"bytes,1,opt,name=peerId,proto3" json:"peerId,omitempty"` GroupId *RaftGroupIdProto `protobuf:"bytes,2,opt,name=groupId,proto3" json:"groupId,omitempty"` } func (x *RaftGroupMemberIdProto) Reset() { *x = RaftGroupMemberIdProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftGroupMemberIdProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftGroupMemberIdProto) ProtoMessage() {} func (x *RaftGroupMemberIdProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftGroupMemberIdProto.ProtoReflect.Descriptor instead. func (*RaftGroupMemberIdProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{3} } func (x *RaftGroupMemberIdProto) GetPeerId() []byte { if x != nil { return x.PeerId } return nil } func (x *RaftGroupMemberIdProto) GetGroupId() *RaftGroupIdProto { if x != nil { return x.GroupId } return nil } type RaftConfigurationProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Peers []*RaftPeerProto `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` // the peers in the current or new conf OldPeers []*RaftPeerProto `protobuf:"bytes,2,rep,name=oldPeers,proto3" json:"oldPeers,omitempty"` // the peers in the old conf } func (x *RaftConfigurationProto) Reset() { *x = RaftConfigurationProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftConfigurationProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftConfigurationProto) ProtoMessage() {} func (x *RaftConfigurationProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftConfigurationProto.ProtoReflect.Descriptor instead. func (*RaftConfigurationProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{4} } func (x *RaftConfigurationProto) GetPeers() []*RaftPeerProto { if x != nil { return x.Peers } return nil } func (x *RaftConfigurationProto) GetOldPeers() []*RaftPeerProto { if x != nil { return x.OldPeers } return nil } type StateMachineEntryProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //* // StateMachine specific data which is not written to log. // Unlike logEntryData, stateMachineData is managed and stored by the StateMachine but not the RaftLog. StateMachineData []byte `protobuf:"bytes,1,opt,name=stateMachineData,proto3" json:"stateMachineData,omitempty"` //* // When stateMachineData is missing, it is the size of the serialized LogEntryProto along with stateMachineData. // When stateMachineData is not missing, it must be set to zero. LogEntryProtoSerializedSize uint32 `protobuf:"varint,2,opt,name=logEntryProtoSerializedSize,proto3" json:"logEntryProtoSerializedSize,omitempty"` } func (x *StateMachineEntryProto) Reset() { *x = StateMachineEntryProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StateMachineEntryProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*StateMachineEntryProto) ProtoMessage() {} func (x *StateMachineEntryProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StateMachineEntryProto.ProtoReflect.Descriptor instead. func (*StateMachineEntryProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{5} } func (x *StateMachineEntryProto) GetStateMachineData() []byte { if x != nil { return x.StateMachineData } return nil } func (x *StateMachineEntryProto) GetLogEntryProtoSerializedSize() uint32 { if x != nil { return x.LogEntryProtoSerializedSize } return 0 } type StateMachineLogEntryProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //* RaftLog entry data LogData []byte `protobuf:"bytes,1,opt,name=logData,proto3" json:"logData,omitempty"` //* // StateMachine entry. // StateMachine implementation may use this field to separate StateMachine specific data from the RaftLog data. StateMachineEntry *StateMachineEntryProto `protobuf:"bytes,2,opt,name=stateMachineEntry,proto3" json:"stateMachineEntry,omitempty"` // clientId and callId are used to rebuild the retry cache. ClientId []byte `protobuf:"bytes,14,opt,name=clientId,proto3" json:"clientId,omitempty"` CallId uint64 `protobuf:"varint,15,opt,name=callId,proto3" json:"callId,omitempty"` } func (x *StateMachineLogEntryProto) Reset() { *x = StateMachineLogEntryProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StateMachineLogEntryProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*StateMachineLogEntryProto) ProtoMessage() {} func (x *StateMachineLogEntryProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StateMachineLogEntryProto.ProtoReflect.Descriptor instead. func (*StateMachineLogEntryProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{6} } func (x *StateMachineLogEntryProto) GetLogData() []byte { if x != nil { return x.LogData } return nil } func (x *StateMachineLogEntryProto) GetStateMachineEntry() *StateMachineEntryProto { if x != nil { return x.StateMachineEntry } return nil } func (x *StateMachineLogEntryProto) GetClientId() []byte { if x != nil { return x.ClientId } return nil } func (x *StateMachineLogEntryProto) GetCallId() uint64 { if x != nil { return x.CallId } return 0 } type MetadataProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommitIndex uint64 `protobuf:"varint,1,opt,name=commitIndex,proto3" json:"commitIndex,omitempty"` } func (x *MetadataProto) Reset() { *x = MetadataProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetadataProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetadataProto) ProtoMessage() {} func (x *MetadataProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 MetadataProto.ProtoReflect.Descriptor instead. func (*MetadataProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{7} } func (x *MetadataProto) GetCommitIndex() uint64 { if x != nil { return x.CommitIndex } return 0 } type LogEntryProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Term uint64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"` Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` // Types that are assignable to LogEntryBody: // *LogEntryProto_StateMachineLogEntry // *LogEntryProto_ConfigurationEntry // *LogEntryProto_MetadataEntry LogEntryBody isLogEntryProto_LogEntryBody `protobuf_oneof:"LogEntryBody"` } func (x *LogEntryProto) Reset() { *x = LogEntryProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LogEntryProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*LogEntryProto) ProtoMessage() {} func (x *LogEntryProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LogEntryProto.ProtoReflect.Descriptor instead. func (*LogEntryProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{8} } func (x *LogEntryProto) GetTerm() uint64 { if x != nil { return x.Term } return 0 } func (x *LogEntryProto) GetIndex() uint64 { if x != nil { return x.Index } return 0 } func (m *LogEntryProto) GetLogEntryBody() isLogEntryProto_LogEntryBody { if m != nil { return m.LogEntryBody } return nil } func (x *LogEntryProto) GetStateMachineLogEntry() *StateMachineLogEntryProto { if x, ok := x.GetLogEntryBody().(*LogEntryProto_StateMachineLogEntry); ok { return x.StateMachineLogEntry } return nil } func (x *LogEntryProto) GetConfigurationEntry() *RaftConfigurationProto { if x, ok := x.GetLogEntryBody().(*LogEntryProto_ConfigurationEntry); ok { return x.ConfigurationEntry } return nil } func (x *LogEntryProto) GetMetadataEntry() *MetadataProto { if x, ok := x.GetLogEntryBody().(*LogEntryProto_MetadataEntry); ok { return x.MetadataEntry } return nil } type isLogEntryProto_LogEntryBody interface { isLogEntryProto_LogEntryBody() } type LogEntryProto_StateMachineLogEntry struct { StateMachineLogEntry *StateMachineLogEntryProto `protobuf:"bytes,3,opt,name=stateMachineLogEntry,proto3,oneof"` } type LogEntryProto_ConfigurationEntry struct { ConfigurationEntry *RaftConfigurationProto `protobuf:"bytes,4,opt,name=configurationEntry,proto3,oneof"` } type LogEntryProto_MetadataEntry struct { MetadataEntry *MetadataProto `protobuf:"bytes,5,opt,name=metadataEntry,proto3,oneof"` } func (*LogEntryProto_StateMachineLogEntry) isLogEntryProto_LogEntryBody() {} func (*LogEntryProto_ConfigurationEntry) isLogEntryProto_LogEntryBody() {} func (*LogEntryProto_MetadataEntry) isLogEntryProto_LogEntryBody() {} type TermIndexProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Term uint64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"` Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` } func (x *TermIndexProto) Reset() { *x = TermIndexProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TermIndexProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*TermIndexProto) ProtoMessage() {} func (x *TermIndexProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TermIndexProto.ProtoReflect.Descriptor instead. func (*TermIndexProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{9} } func (x *TermIndexProto) GetTerm() uint64 { if x != nil { return x.Term } return 0 } func (x *TermIndexProto) GetIndex() uint64 { if x != nil { return x.Index } return 0 } type RaftRpcRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RequestorId []byte `protobuf:"bytes,1,opt,name=requestorId,proto3" json:"requestorId,omitempty"` ReplyId []byte `protobuf:"bytes,2,opt,name=replyId,proto3" json:"replyId,omitempty"` RaftGroupId *RaftGroupIdProto `protobuf:"bytes,3,opt,name=raftGroupId,proto3" json:"raftGroupId,omitempty"` CallId uint64 `protobuf:"varint,4,opt,name=callId,proto3" json:"callId,omitempty"` SlidingWindowEntry *SlidingWindowEntry `protobuf:"bytes,15,opt,name=slidingWindowEntry,proto3" json:"slidingWindowEntry,omitempty"` } func (x *RaftRpcRequestProto) Reset() { *x = RaftRpcRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftRpcRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftRpcRequestProto) ProtoMessage() {} func (x *RaftRpcRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftRpcRequestProto.ProtoReflect.Descriptor instead. func (*RaftRpcRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{10} } func (x *RaftRpcRequestProto) GetRequestorId() []byte { if x != nil { return x.RequestorId } return nil } func (x *RaftRpcRequestProto) GetReplyId() []byte { if x != nil { return x.ReplyId } return nil } func (x *RaftRpcRequestProto) GetRaftGroupId() *RaftGroupIdProto { if x != nil { return x.RaftGroupId } return nil } func (x *RaftRpcRequestProto) GetCallId() uint64 { if x != nil { return x.CallId } return 0 } func (x *RaftRpcRequestProto) GetSlidingWindowEntry() *SlidingWindowEntry { if x != nil { return x.SlidingWindowEntry } return nil } type SlidingWindowEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SeqNum uint64 `protobuf:"varint,1,opt,name=seqNum,proto3" json:"seqNum,omitempty"` // 0 for non-sliding-window requests; >= 1 for sliding-window requests IsFirst bool `protobuf:"varint,2,opt,name=isFirst,proto3" json:"isFirst,omitempty"` // Is this the first request of the sliding window? } func (x *SlidingWindowEntry) Reset() { *x = SlidingWindowEntry{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SlidingWindowEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*SlidingWindowEntry) ProtoMessage() {} func (x *SlidingWindowEntry) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SlidingWindowEntry.ProtoReflect.Descriptor instead. func (*SlidingWindowEntry) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{11} } func (x *SlidingWindowEntry) GetSeqNum() uint64 { if x != nil { return x.SeqNum } return 0 } func (x *SlidingWindowEntry) GetIsFirst() bool { if x != nil { return x.IsFirst } return false } type RaftRpcReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RequestorId []byte `protobuf:"bytes,1,opt,name=requestorId,proto3" json:"requestorId,omitempty"` ReplyId []byte `protobuf:"bytes,2,opt,name=replyId,proto3" json:"replyId,omitempty"` RaftGroupId *RaftGroupIdProto `protobuf:"bytes,3,opt,name=raftGroupId,proto3" json:"raftGroupId,omitempty"` CallId uint64 `protobuf:"varint,4,opt,name=callId,proto3" json:"callId,omitempty"` Success bool `protobuf:"varint,15,opt,name=success,proto3" json:"success,omitempty"` } func (x *RaftRpcReplyProto) Reset() { *x = RaftRpcReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftRpcReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftRpcReplyProto) ProtoMessage() {} func (x *RaftRpcReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftRpcReplyProto.ProtoReflect.Descriptor instead. func (*RaftRpcReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{12} } func (x *RaftRpcReplyProto) GetRequestorId() []byte { if x != nil { return x.RequestorId } return nil } func (x *RaftRpcReplyProto) GetReplyId() []byte { if x != nil { return x.ReplyId } return nil } func (x *RaftRpcReplyProto) GetRaftGroupId() *RaftGroupIdProto { if x != nil { return x.RaftGroupId } return nil } func (x *RaftRpcReplyProto) GetCallId() uint64 { if x != nil { return x.CallId } return 0 } func (x *RaftRpcReplyProto) GetSuccess() bool { if x != nil { return x.Success } return false } type FileChunkProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` // relative to root TotalSize uint64 `protobuf:"varint,2,opt,name=totalSize,proto3" json:"totalSize,omitempty"` FileDigest []byte `protobuf:"bytes,3,opt,name=fileDigest,proto3" json:"fileDigest,omitempty"` ChunkIndex uint32 `protobuf:"varint,4,opt,name=chunkIndex,proto3" json:"chunkIndex,omitempty"` Offset uint64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` Data []byte `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` Done bool `protobuf:"varint,7,opt,name=done,proto3" json:"done,omitempty"` } func (x *FileChunkProto) Reset() { *x = FileChunkProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileChunkProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileChunkProto) ProtoMessage() {} func (x *FileChunkProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileChunkProto.ProtoReflect.Descriptor instead. func (*FileChunkProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{13} } func (x *FileChunkProto) GetFilename() string { if x != nil { return x.Filename } return "" } func (x *FileChunkProto) GetTotalSize() uint64 { if x != nil { return x.TotalSize } return 0 } func (x *FileChunkProto) GetFileDigest() []byte { if x != nil { return x.FileDigest } return nil } func (x *FileChunkProto) GetChunkIndex() uint32 { if x != nil { return x.ChunkIndex } return 0 } func (x *FileChunkProto) GetOffset() uint64 { if x != nil { return x.Offset } return 0 } func (x *FileChunkProto) GetData() []byte { if x != nil { return x.Data } return nil } func (x *FileChunkProto) GetDone() bool { if x != nil { return x.Done } return false } type RequestVoteRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=serverRequest,proto3" json:"serverRequest,omitempty"` CandidateTerm uint64 `protobuf:"varint,2,opt,name=candidateTerm,proto3" json:"candidateTerm,omitempty"` CandidateLastEntry *TermIndexProto `protobuf:"bytes,3,opt,name=candidateLastEntry,proto3" json:"candidateLastEntry,omitempty"` } func (x *RequestVoteRequestProto) Reset() { *x = RequestVoteRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RequestVoteRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RequestVoteRequestProto) ProtoMessage() {} func (x *RequestVoteRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RequestVoteRequestProto.ProtoReflect.Descriptor instead. func (*RequestVoteRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{14} } func (x *RequestVoteRequestProto) GetServerRequest() *RaftRpcRequestProto { if x != nil { return x.ServerRequest } return nil } func (x *RequestVoteRequestProto) GetCandidateTerm() uint64 { if x != nil { return x.CandidateTerm } return 0 } func (x *RequestVoteRequestProto) GetCandidateLastEntry() *TermIndexProto { if x != nil { return x.CandidateLastEntry } return nil } type RequestVoteReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerReply *RaftRpcReplyProto `protobuf:"bytes,1,opt,name=serverReply,proto3" json:"serverReply,omitempty"` Term uint64 `protobuf:"varint,2,opt,name=term,proto3" json:"term,omitempty"` ShouldShutdown bool `protobuf:"varint,3,opt,name=shouldShutdown,proto3" json:"shouldShutdown,omitempty"` } func (x *RequestVoteReplyProto) Reset() { *x = RequestVoteReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RequestVoteReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RequestVoteReplyProto) ProtoMessage() {} func (x *RequestVoteReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RequestVoteReplyProto.ProtoReflect.Descriptor instead. func (*RequestVoteReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{15} } func (x *RequestVoteReplyProto) GetServerReply() *RaftRpcReplyProto { if x != nil { return x.ServerReply } return nil } func (x *RequestVoteReplyProto) GetTerm() uint64 { if x != nil { return x.Term } return 0 } func (x *RequestVoteReplyProto) GetShouldShutdown() bool { if x != nil { return x.ShouldShutdown } return false } type CommitInfoProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Server *RaftPeerProto `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` CommitIndex uint64 `protobuf:"varint,2,opt,name=commitIndex,proto3" json:"commitIndex,omitempty"` } func (x *CommitInfoProto) Reset() { *x = CommitInfoProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommitInfoProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommitInfoProto) ProtoMessage() {} func (x *CommitInfoProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 CommitInfoProto.ProtoReflect.Descriptor instead. func (*CommitInfoProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{16} } func (x *CommitInfoProto) GetServer() *RaftPeerProto { if x != nil { return x.Server } return nil } func (x *CommitInfoProto) GetCommitIndex() uint64 { if x != nil { return x.CommitIndex } return 0 } type AppendEntriesRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=serverRequest,proto3" json:"serverRequest,omitempty"` LeaderTerm uint64 `protobuf:"varint,2,opt,name=leaderTerm,proto3" json:"leaderTerm,omitempty"` PreviousLog *TermIndexProto `protobuf:"bytes,3,opt,name=previousLog,proto3" json:"previousLog,omitempty"` Entries []*LogEntryProto `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"` LeaderCommit uint64 `protobuf:"varint,5,opt,name=leaderCommit,proto3" json:"leaderCommit,omitempty"` Initializing bool `protobuf:"varint,6,opt,name=initializing,proto3" json:"initializing,omitempty"` CommitInfos []*CommitInfoProto `protobuf:"bytes,15,rep,name=commitInfos,proto3" json:"commitInfos,omitempty"` } func (x *AppendEntriesRequestProto) Reset() { *x = AppendEntriesRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AppendEntriesRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*AppendEntriesRequestProto) ProtoMessage() {} func (x *AppendEntriesRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 AppendEntriesRequestProto.ProtoReflect.Descriptor instead. func (*AppendEntriesRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{17} } func (x *AppendEntriesRequestProto) GetServerRequest() *RaftRpcRequestProto { if x != nil { return x.ServerRequest } return nil } func (x *AppendEntriesRequestProto) GetLeaderTerm() uint64 { if x != nil { return x.LeaderTerm } return 0 } func (x *AppendEntriesRequestProto) GetPreviousLog() *TermIndexProto { if x != nil { return x.PreviousLog } return nil } func (x *AppendEntriesRequestProto) GetEntries() []*LogEntryProto { if x != nil { return x.Entries } return nil } func (x *AppendEntriesRequestProto) GetLeaderCommit() uint64 { if x != nil { return x.LeaderCommit } return 0 } func (x *AppendEntriesRequestProto) GetInitializing() bool { if x != nil { return x.Initializing } return false } func (x *AppendEntriesRequestProto) GetCommitInfos() []*CommitInfoProto { if x != nil { return x.CommitInfos } return nil } type AppendEntriesReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerReply *RaftRpcReplyProto `protobuf:"bytes,1,opt,name=serverReply,proto3" json:"serverReply,omitempty"` Term uint64 `protobuf:"varint,2,opt,name=term,proto3" json:"term,omitempty"` NextIndex uint64 `protobuf:"varint,3,opt,name=nextIndex,proto3" json:"nextIndex,omitempty"` Result AppendEntriesReplyProto_AppendResult `protobuf:"varint,4,opt,name=result,proto3,enum=ratis.common.AppendEntriesReplyProto_AppendResult" json:"result,omitempty"` FollowerCommit uint64 `protobuf:"varint,5,opt,name=followerCommit,proto3" json:"followerCommit,omitempty"` MatchIndex uint64 `protobuf:"varint,6,opt,name=matchIndex,proto3" json:"matchIndex,omitempty"` } func (x *AppendEntriesReplyProto) Reset() { *x = AppendEntriesReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AppendEntriesReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*AppendEntriesReplyProto) ProtoMessage() {} func (x *AppendEntriesReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 AppendEntriesReplyProto.ProtoReflect.Descriptor instead. func (*AppendEntriesReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{18} } func (x *AppendEntriesReplyProto) GetServerReply() *RaftRpcReplyProto { if x != nil { return x.ServerReply } return nil } func (x *AppendEntriesReplyProto) GetTerm() uint64 { if x != nil { return x.Term } return 0 } func (x *AppendEntriesReplyProto) GetNextIndex() uint64 { if x != nil { return x.NextIndex } return 0 } func (x *AppendEntriesReplyProto) GetResult() AppendEntriesReplyProto_AppendResult { if x != nil { return x.Result } return AppendEntriesReplyProto_SUCCESS } func (x *AppendEntriesReplyProto) GetFollowerCommit() uint64 { if x != nil { return x.FollowerCommit } return 0 } func (x *AppendEntriesReplyProto) GetMatchIndex() uint64 { if x != nil { return x.MatchIndex } return 0 } type InstallSnapshotRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=serverRequest,proto3" json:"serverRequest,omitempty"` LeaderTerm uint64 `protobuf:"varint,2,opt,name=leaderTerm,proto3" json:"leaderTerm,omitempty"` // Types that are assignable to InstallSnapshotRequestBody: // *InstallSnapshotRequestProto_SnapshotChunk // *InstallSnapshotRequestProto_Notification InstallSnapshotRequestBody isInstallSnapshotRequestProto_InstallSnapshotRequestBody `protobuf_oneof:"InstallSnapshotRequestBody"` } func (x *InstallSnapshotRequestProto) Reset() { *x = InstallSnapshotRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstallSnapshotRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstallSnapshotRequestProto) ProtoMessage() {} func (x *InstallSnapshotRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 InstallSnapshotRequestProto.ProtoReflect.Descriptor instead. func (*InstallSnapshotRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{19} } func (x *InstallSnapshotRequestProto) GetServerRequest() *RaftRpcRequestProto { if x != nil { return x.ServerRequest } return nil } func (x *InstallSnapshotRequestProto) GetLeaderTerm() uint64 { if x != nil { return x.LeaderTerm } return 0 } func (m *InstallSnapshotRequestProto) GetInstallSnapshotRequestBody() isInstallSnapshotRequestProto_InstallSnapshotRequestBody { if m != nil { return m.InstallSnapshotRequestBody } return nil } func (x *InstallSnapshotRequestProto) GetSnapshotChunk() *InstallSnapshotRequestProto_SnapshotChunkProto { if x, ok := x.GetInstallSnapshotRequestBody().(*InstallSnapshotRequestProto_SnapshotChunk); ok { return x.SnapshotChunk } return nil } func (x *InstallSnapshotRequestProto) GetNotification() *InstallSnapshotRequestProto_NotificationProto { if x, ok := x.GetInstallSnapshotRequestBody().(*InstallSnapshotRequestProto_Notification); ok { return x.Notification } return nil } type isInstallSnapshotRequestProto_InstallSnapshotRequestBody interface { isInstallSnapshotRequestProto_InstallSnapshotRequestBody() } type InstallSnapshotRequestProto_SnapshotChunk struct { SnapshotChunk *InstallSnapshotRequestProto_SnapshotChunkProto `protobuf:"bytes,3,opt,name=snapshotChunk,proto3,oneof"` } type InstallSnapshotRequestProto_Notification struct { Notification *InstallSnapshotRequestProto_NotificationProto `protobuf:"bytes,4,opt,name=notification,proto3,oneof"` } func (*InstallSnapshotRequestProto_SnapshotChunk) isInstallSnapshotRequestProto_InstallSnapshotRequestBody() { } func (*InstallSnapshotRequestProto_Notification) isInstallSnapshotRequestProto_InstallSnapshotRequestBody() { } type InstallSnapshotReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerReply *RaftRpcReplyProto `protobuf:"bytes,1,opt,name=serverReply,proto3" json:"serverReply,omitempty"` Term uint64 `protobuf:"varint,2,opt,name=term,proto3" json:"term,omitempty"` Result InstallSnapshotResult `protobuf:"varint,3,opt,name=result,proto3,enum=ratis.common.InstallSnapshotResult" json:"result,omitempty"` // Types that are assignable to InstallSnapshotReplyBody: // *InstallSnapshotReplyProto_RequestIndex // *InstallSnapshotReplyProto_SnapshotIndex InstallSnapshotReplyBody isInstallSnapshotReplyProto_InstallSnapshotReplyBody `protobuf_oneof:"InstallSnapshotReplyBody"` } func (x *InstallSnapshotReplyProto) Reset() { *x = InstallSnapshotReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstallSnapshotReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstallSnapshotReplyProto) ProtoMessage() {} func (x *InstallSnapshotReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 InstallSnapshotReplyProto.ProtoReflect.Descriptor instead. func (*InstallSnapshotReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{20} } func (x *InstallSnapshotReplyProto) GetServerReply() *RaftRpcReplyProto { if x != nil { return x.ServerReply } return nil } func (x *InstallSnapshotReplyProto) GetTerm() uint64 { if x != nil { return x.Term } return 0 } func (x *InstallSnapshotReplyProto) GetResult() InstallSnapshotResult { if x != nil { return x.Result } return InstallSnapshotResult_SUCCESS } func (m *InstallSnapshotReplyProto) GetInstallSnapshotReplyBody() isInstallSnapshotReplyProto_InstallSnapshotReplyBody { if m != nil { return m.InstallSnapshotReplyBody } return nil } func (x *InstallSnapshotReplyProto) GetRequestIndex() uint32 { if x, ok := x.GetInstallSnapshotReplyBody().(*InstallSnapshotReplyProto_RequestIndex); ok { return x.RequestIndex } return 0 } func (x *InstallSnapshotReplyProto) GetSnapshotIndex() uint64 { if x, ok := x.GetInstallSnapshotReplyBody().(*InstallSnapshotReplyProto_SnapshotIndex); ok { return x.SnapshotIndex } return 0 } type isInstallSnapshotReplyProto_InstallSnapshotReplyBody interface { isInstallSnapshotReplyProto_InstallSnapshotReplyBody() } type InstallSnapshotReplyProto_RequestIndex struct { RequestIndex uint32 `protobuf:"varint,4,opt,name=requestIndex,proto3,oneof"` // index of the snapshot chunk request. } type InstallSnapshotReplyProto_SnapshotIndex struct { SnapshotIndex uint64 `protobuf:"varint,5,opt,name=snapshotIndex,proto3,oneof"` // index of snapshot installed after notification. } func (*InstallSnapshotReplyProto_RequestIndex) isInstallSnapshotReplyProto_InstallSnapshotReplyBody() { } func (*InstallSnapshotReplyProto_SnapshotIndex) isInstallSnapshotReplyProto_InstallSnapshotReplyBody() { } type ClientMessageEntryProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` } func (x *ClientMessageEntryProto) Reset() { *x = ClientMessageEntryProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClientMessageEntryProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClientMessageEntryProto) ProtoMessage() {} func (x *ClientMessageEntryProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 ClientMessageEntryProto.ProtoReflect.Descriptor instead. func (*ClientMessageEntryProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{21} } func (x *ClientMessageEntryProto) GetContent() []byte { if x != nil { return x.Content } return nil } type WriteRequestTypeProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *WriteRequestTypeProto) Reset() { *x = WriteRequestTypeProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WriteRequestTypeProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*WriteRequestTypeProto) ProtoMessage() {} func (x *WriteRequestTypeProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 WriteRequestTypeProto.ProtoReflect.Descriptor instead. func (*WriteRequestTypeProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{22} } type ReadRequestTypeProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReadRequestTypeProto) Reset() { *x = ReadRequestTypeProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadRequestTypeProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadRequestTypeProto) ProtoMessage() {} func (x *ReadRequestTypeProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReadRequestTypeProto.ProtoReflect.Descriptor instead. func (*ReadRequestTypeProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{23} } type StaleReadRequestTypeProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MinIndex uint64 `protobuf:"varint,1,opt,name=minIndex,proto3" json:"minIndex,omitempty"` } func (x *StaleReadRequestTypeProto) Reset() { *x = StaleReadRequestTypeProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StaleReadRequestTypeProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*StaleReadRequestTypeProto) ProtoMessage() {} func (x *StaleReadRequestTypeProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StaleReadRequestTypeProto.ProtoReflect.Descriptor instead. func (*StaleReadRequestTypeProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{24} } func (x *StaleReadRequestTypeProto) GetMinIndex() uint64 { if x != nil { return x.MinIndex } return 0 } type WatchRequestTypeProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` Replication ReplicationLevel `protobuf:"varint,2,opt,name=replication,proto3,enum=ratis.common.ReplicationLevel" json:"replication,omitempty"` } func (x *WatchRequestTypeProto) Reset() { *x = WatchRequestTypeProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WatchRequestTypeProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*WatchRequestTypeProto) ProtoMessage() {} func (x *WatchRequestTypeProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WatchRequestTypeProto.ProtoReflect.Descriptor instead. func (*WatchRequestTypeProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{25} } func (x *WatchRequestTypeProto) GetIndex() uint64 { if x != nil { return x.Index } return 0 } func (x *WatchRequestTypeProto) GetReplication() ReplicationLevel { if x != nil { return x.Replication } return ReplicationLevel_MAJORITY } // normal client request type RaftClientRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=rpcRequest,proto3" json:"rpcRequest,omitempty"` Message *ClientMessageEntryProto `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // Types that are assignable to Type: // *RaftClientRequestProto_Write // *RaftClientRequestProto_Read // *RaftClientRequestProto_StaleRead // *RaftClientRequestProto_Watch Type isRaftClientRequestProto_Type `protobuf_oneof:"Type"` } func (x *RaftClientRequestProto) Reset() { *x = RaftClientRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftClientRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftClientRequestProto) ProtoMessage() {} func (x *RaftClientRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RaftClientRequestProto.ProtoReflect.Descriptor instead. func (*RaftClientRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{26} } func (x *RaftClientRequestProto) GetRpcRequest() *RaftRpcRequestProto { if x != nil { return x.RpcRequest } return nil } func (x *RaftClientRequestProto) GetMessage() *ClientMessageEntryProto { if x != nil { return x.Message } return nil } func (m *RaftClientRequestProto) GetType() isRaftClientRequestProto_Type { if m != nil { return m.Type } return nil } func (x *RaftClientRequestProto) GetWrite() *WriteRequestTypeProto { if x, ok := x.GetType().(*RaftClientRequestProto_Write); ok { return x.Write } return nil } func (x *RaftClientRequestProto) GetRead() *ReadRequestTypeProto { if x, ok := x.GetType().(*RaftClientRequestProto_Read); ok { return x.Read } return nil } func (x *RaftClientRequestProto) GetStaleRead() *StaleReadRequestTypeProto { if x, ok := x.GetType().(*RaftClientRequestProto_StaleRead); ok { return x.StaleRead } return nil } func (x *RaftClientRequestProto) GetWatch() *WatchRequestTypeProto { if x, ok := x.GetType().(*RaftClientRequestProto_Watch); ok { return x.Watch } return nil } type isRaftClientRequestProto_Type interface { isRaftClientRequestProto_Type() } type RaftClientRequestProto_Write struct { Write *WriteRequestTypeProto `protobuf:"bytes,3,opt,name=write,proto3,oneof"` } type RaftClientRequestProto_Read struct { Read *ReadRequestTypeProto `protobuf:"bytes,4,opt,name=read,proto3,oneof"` } type RaftClientRequestProto_StaleRead struct { StaleRead *StaleReadRequestTypeProto `protobuf:"bytes,5,opt,name=staleRead,proto3,oneof"` } type RaftClientRequestProto_Watch struct { Watch *WatchRequestTypeProto `protobuf:"bytes,6,opt,name=watch,proto3,oneof"` } func (*RaftClientRequestProto_Write) isRaftClientRequestProto_Type() {} func (*RaftClientRequestProto_Read) isRaftClientRequestProto_Type() {} func (*RaftClientRequestProto_StaleRead) isRaftClientRequestProto_Type() {} func (*RaftClientRequestProto_Watch) isRaftClientRequestProto_Type() {} type NotLeaderExceptionProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SuggestedLeader *RaftPeerProto `protobuf:"bytes,1,opt,name=suggestedLeader,proto3" json:"suggestedLeader,omitempty"` PeersInConf []*RaftPeerProto `protobuf:"bytes,2,rep,name=peersInConf,proto3" json:"peersInConf,omitempty"` } func (x *NotLeaderExceptionProto) Reset() { *x = NotLeaderExceptionProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotLeaderExceptionProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotLeaderExceptionProto) ProtoMessage() {} func (x *NotLeaderExceptionProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NotLeaderExceptionProto.ProtoReflect.Descriptor instead. func (*NotLeaderExceptionProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{27} } func (x *NotLeaderExceptionProto) GetSuggestedLeader() *RaftPeerProto { if x != nil { return x.SuggestedLeader } return nil } func (x *NotLeaderExceptionProto) GetPeersInConf() []*RaftPeerProto { if x != nil { return x.PeersInConf } return nil } type LeaderNotReadyExceptionProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId *RaftGroupMemberIdProto `protobuf:"bytes,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // id of the leader } func (x *LeaderNotReadyExceptionProto) Reset() { *x = LeaderNotReadyExceptionProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaderNotReadyExceptionProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaderNotReadyExceptionProto) ProtoMessage() {} func (x *LeaderNotReadyExceptionProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LeaderNotReadyExceptionProto.ProtoReflect.Descriptor instead. func (*LeaderNotReadyExceptionProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{28} } func (x *LeaderNotReadyExceptionProto) GetServerId() *RaftGroupMemberIdProto { if x != nil { return x.ServerId } return nil } type NotReplicatedExceptionProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CallId uint64 `protobuf:"varint,1,opt,name=callId,proto3" json:"callId,omitempty"` Replication ReplicationLevel `protobuf:"varint,2,opt,name=replication,proto3,enum=ratis.common.ReplicationLevel" json:"replication,omitempty"` LogIndex uint64 `protobuf:"varint,3,opt,name=logIndex,proto3" json:"logIndex,omitempty"` } func (x *NotReplicatedExceptionProto) Reset() { *x = NotReplicatedExceptionProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotReplicatedExceptionProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotReplicatedExceptionProto) ProtoMessage() {} func (x *NotReplicatedExceptionProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NotReplicatedExceptionProto.ProtoReflect.Descriptor instead. func (*NotReplicatedExceptionProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{29} } func (x *NotReplicatedExceptionProto) GetCallId() uint64 { if x != nil { return x.CallId } return 0 } func (x *NotReplicatedExceptionProto) GetReplication() ReplicationLevel { if x != nil { return x.Replication } return ReplicationLevel_MAJORITY } func (x *NotReplicatedExceptionProto) GetLogIndex() uint64 { if x != nil { return x.LogIndex } return 0 } type StateMachineExceptionProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ExceptionClassName string `protobuf:"bytes,1,opt,name=exceptionClassName,proto3" json:"exceptionClassName,omitempty"` ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` Stacktrace []byte `protobuf:"bytes,3,opt,name=stacktrace,proto3" json:"stacktrace,omitempty"` } func (x *StateMachineExceptionProto) Reset() { *x = StateMachineExceptionProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StateMachineExceptionProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*StateMachineExceptionProto) ProtoMessage() {} func (x *StateMachineExceptionProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StateMachineExceptionProto.ProtoReflect.Descriptor instead. func (*StateMachineExceptionProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{30} } func (x *StateMachineExceptionProto) GetExceptionClassName() string { if x != nil { return x.ExceptionClassName } return "" } func (x *StateMachineExceptionProto) GetErrorMsg() string { if x != nil { return x.ErrorMsg } return "" } func (x *StateMachineExceptionProto) GetStacktrace() []byte { if x != nil { return x.Stacktrace } return nil } type RaftClientReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcReply *RaftRpcReplyProto `protobuf:"bytes,1,opt,name=rpcReply,proto3" json:"rpcReply,omitempty"` Message *ClientMessageEntryProto `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // Types that are assignable to ExceptionDetails: // *RaftClientReplyProto_NotLeaderException // *RaftClientReplyProto_NotReplicatedException // *RaftClientReplyProto_StateMachineException // *RaftClientReplyProto_LeaderNotReadyException ExceptionDetails isRaftClientReplyProto_ExceptionDetails `protobuf_oneof:"ExceptionDetails"` LogIndex uint64 `protobuf:"varint,14,opt,name=logIndex,proto3" json:"logIndex,omitempty"` // When the request is a write request and the reply is success, the log index of the transaction CommitInfos []*CommitInfoProto `protobuf:"bytes,15,rep,name=commitInfos,proto3" json:"commitInfos,omitempty"` } func (x *RaftClientReplyProto) Reset() { *x = RaftClientReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftClientReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftClientReplyProto) ProtoMessage() {} func (x *RaftClientReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 RaftClientReplyProto.ProtoReflect.Descriptor instead. func (*RaftClientReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{31} } func (x *RaftClientReplyProto) GetRpcReply() *RaftRpcReplyProto { if x != nil { return x.RpcReply } return nil } func (x *RaftClientReplyProto) GetMessage() *ClientMessageEntryProto { if x != nil { return x.Message } return nil } func (m *RaftClientReplyProto) GetExceptionDetails() isRaftClientReplyProto_ExceptionDetails { if m != nil { return m.ExceptionDetails } return nil } func (x *RaftClientReplyProto) GetNotLeaderException() *NotLeaderExceptionProto { if x, ok := x.GetExceptionDetails().(*RaftClientReplyProto_NotLeaderException); ok { return x.NotLeaderException } return nil } func (x *RaftClientReplyProto) GetNotReplicatedException() *NotReplicatedExceptionProto { if x, ok := x.GetExceptionDetails().(*RaftClientReplyProto_NotReplicatedException); ok { return x.NotReplicatedException } return nil } func (x *RaftClientReplyProto) GetStateMachineException() *StateMachineExceptionProto { if x, ok := x.GetExceptionDetails().(*RaftClientReplyProto_StateMachineException); ok { return x.StateMachineException } return nil } func (x *RaftClientReplyProto) GetLeaderNotReadyException() *LeaderNotReadyExceptionProto { if x, ok := x.GetExceptionDetails().(*RaftClientReplyProto_LeaderNotReadyException); ok { return x.LeaderNotReadyException } return nil } func (x *RaftClientReplyProto) GetLogIndex() uint64 { if x != nil { return x.LogIndex } return 0 } func (x *RaftClientReplyProto) GetCommitInfos() []*CommitInfoProto { if x != nil { return x.CommitInfos } return nil } type isRaftClientReplyProto_ExceptionDetails interface { isRaftClientReplyProto_ExceptionDetails() } type RaftClientReplyProto_NotLeaderException struct { NotLeaderException *NotLeaderExceptionProto `protobuf:"bytes,3,opt,name=notLeaderException,proto3,oneof"` } type RaftClientReplyProto_NotReplicatedException struct { NotReplicatedException *NotReplicatedExceptionProto `protobuf:"bytes,4,opt,name=notReplicatedException,proto3,oneof"` } type RaftClientReplyProto_StateMachineException struct { StateMachineException *StateMachineExceptionProto `protobuf:"bytes,5,opt,name=stateMachineException,proto3,oneof"` } type RaftClientReplyProto_LeaderNotReadyException struct { LeaderNotReadyException *LeaderNotReadyExceptionProto `protobuf:"bytes,6,opt,name=leaderNotReadyException,proto3,oneof"` } func (*RaftClientReplyProto_NotLeaderException) isRaftClientReplyProto_ExceptionDetails() {} func (*RaftClientReplyProto_NotReplicatedException) isRaftClientReplyProto_ExceptionDetails() {} func (*RaftClientReplyProto_StateMachineException) isRaftClientReplyProto_ExceptionDetails() {} func (*RaftClientReplyProto_LeaderNotReadyException) isRaftClientReplyProto_ExceptionDetails() {} // setConfiguration request type SetConfigurationRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=rpcRequest,proto3" json:"rpcRequest,omitempty"` Peers []*RaftPeerProto `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } func (x *SetConfigurationRequestProto) Reset() { *x = SetConfigurationRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetConfigurationRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetConfigurationRequestProto) ProtoMessage() {} func (x *SetConfigurationRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_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 SetConfigurationRequestProto.ProtoReflect.Descriptor instead. func (*SetConfigurationRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{32} } func (x *SetConfigurationRequestProto) GetRpcRequest() *RaftRpcRequestProto { if x != nil { return x.RpcRequest } return nil } func (x *SetConfigurationRequestProto) GetPeers() []*RaftPeerProto { if x != nil { return x.Peers } return nil } // A request to add a new group type GroupAddRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Group *RaftGroupProto `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` // the group to be added. } func (x *GroupAddRequestProto) Reset() { *x = GroupAddRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupAddRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupAddRequestProto) ProtoMessage() {} func (x *GroupAddRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupAddRequestProto.ProtoReflect.Descriptor instead. func (*GroupAddRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{33} } func (x *GroupAddRequestProto) GetGroup() *RaftGroupProto { if x != nil { return x.Group } return nil } type GroupRemoveRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupId *RaftGroupIdProto `protobuf:"bytes,1,opt,name=groupId,proto3" json:"groupId,omitempty"` // the group to be removed. DeleteDirectory bool `protobuf:"varint,2,opt,name=deleteDirectory,proto3" json:"deleteDirectory,omitempty"` // delete the directory for that group? } func (x *GroupRemoveRequestProto) Reset() { *x = GroupRemoveRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupRemoveRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupRemoveRequestProto) ProtoMessage() {} func (x *GroupRemoveRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupRemoveRequestProto.ProtoReflect.Descriptor instead. func (*GroupRemoveRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{34} } func (x *GroupRemoveRequestProto) GetGroupId() *RaftGroupIdProto { if x != nil { return x.GroupId } return nil } func (x *GroupRemoveRequestProto) GetDeleteDirectory() bool { if x != nil { return x.DeleteDirectory } return false } type GroupManagementRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=rpcRequest,proto3" json:"rpcRequest,omitempty"` // Types that are assignable to Op: // *GroupManagementRequestProto_GroupAdd // *GroupManagementRequestProto_GroupRemove Op isGroupManagementRequestProto_Op `protobuf_oneof:"Op"` } func (x *GroupManagementRequestProto) Reset() { *x = GroupManagementRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupManagementRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupManagementRequestProto) ProtoMessage() {} func (x *GroupManagementRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupManagementRequestProto.ProtoReflect.Descriptor instead. func (*GroupManagementRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{35} } func (x *GroupManagementRequestProto) GetRpcRequest() *RaftRpcRequestProto { if x != nil { return x.RpcRequest } return nil } func (m *GroupManagementRequestProto) GetOp() isGroupManagementRequestProto_Op { if m != nil { return m.Op } return nil } func (x *GroupManagementRequestProto) GetGroupAdd() *GroupAddRequestProto { if x, ok := x.GetOp().(*GroupManagementRequestProto_GroupAdd); ok { return x.GroupAdd } return nil } func (x *GroupManagementRequestProto) GetGroupRemove() *GroupRemoveRequestProto { if x, ok := x.GetOp().(*GroupManagementRequestProto_GroupRemove); ok { return x.GroupRemove } return nil } type isGroupManagementRequestProto_Op interface { isGroupManagementRequestProto_Op() } type GroupManagementRequestProto_GroupAdd struct { GroupAdd *GroupAddRequestProto `protobuf:"bytes,2,opt,name=groupAdd,proto3,oneof"` } type GroupManagementRequestProto_GroupRemove struct { GroupRemove *GroupRemoveRequestProto `protobuf:"bytes,3,opt,name=groupRemove,proto3,oneof"` } func (*GroupManagementRequestProto_GroupAdd) isGroupManagementRequestProto_Op() {} func (*GroupManagementRequestProto_GroupRemove) isGroupManagementRequestProto_Op() {} // server info requests type GroupListRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=rpcRequest,proto3" json:"rpcRequest,omitempty"` } func (x *GroupListRequestProto) Reset() { *x = GroupListRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupListRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupListRequestProto) ProtoMessage() {} func (x *GroupListRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupListRequestProto.ProtoReflect.Descriptor instead. func (*GroupListRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{36} } func (x *GroupListRequestProto) GetRpcRequest() *RaftRpcRequestProto { if x != nil { return x.RpcRequest } return nil } type GroupInfoRequestProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcRequest *RaftRpcRequestProto `protobuf:"bytes,1,opt,name=rpcRequest,proto3" json:"rpcRequest,omitempty"` GroupId *RaftGroupIdProto `protobuf:"bytes,2,opt,name=groupId,proto3" json:"groupId,omitempty"` } func (x *GroupInfoRequestProto) Reset() { *x = GroupInfoRequestProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupInfoRequestProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupInfoRequestProto) ProtoMessage() {} func (x *GroupInfoRequestProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupInfoRequestProto.ProtoReflect.Descriptor instead. func (*GroupInfoRequestProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{37} } func (x *GroupInfoRequestProto) GetRpcRequest() *RaftRpcRequestProto { if x != nil { return x.RpcRequest } return nil } func (x *GroupInfoRequestProto) GetGroupId() *RaftGroupIdProto { if x != nil { return x.GroupId } return nil } type ServerRpcProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *RaftPeerProto `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` LastRpcElapsedTimeMs uint64 `protobuf:"varint,2,opt,name=lastRpcElapsedTimeMs,proto3" json:"lastRpcElapsedTimeMs,omitempty"` } func (x *ServerRpcProto) Reset() { *x = ServerRpcProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerRpcProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerRpcProto) ProtoMessage() {} func (x *ServerRpcProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServerRpcProto.ProtoReflect.Descriptor instead. func (*ServerRpcProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{38} } func (x *ServerRpcProto) GetId() *RaftPeerProto { if x != nil { return x.Id } return nil } func (x *ServerRpcProto) GetLastRpcElapsedTimeMs() uint64 { if x != nil { return x.LastRpcElapsedTimeMs } return 0 } type LeaderInfoProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FollowerInfo []*ServerRpcProto `protobuf:"bytes,1,rep,name=followerInfo,proto3" json:"followerInfo,omitempty"` } func (x *LeaderInfoProto) Reset() { *x = LeaderInfoProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaderInfoProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaderInfoProto) ProtoMessage() {} func (x *LeaderInfoProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LeaderInfoProto.ProtoReflect.Descriptor instead. func (*LeaderInfoProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{39} } func (x *LeaderInfoProto) GetFollowerInfo() []*ServerRpcProto { if x != nil { return x.FollowerInfo } return nil } type FollowerInfoProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LeaderInfo *ServerRpcProto `protobuf:"bytes,1,opt,name=leaderInfo,proto3" json:"leaderInfo,omitempty"` OutstandingOp uint32 `protobuf:"varint,2,opt,name=outstandingOp,proto3" json:"outstandingOp,omitempty"` } func (x *FollowerInfoProto) Reset() { *x = FollowerInfoProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FollowerInfoProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*FollowerInfoProto) ProtoMessage() {} func (x *FollowerInfoProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FollowerInfoProto.ProtoReflect.Descriptor instead. func (*FollowerInfoProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{40} } func (x *FollowerInfoProto) GetLeaderInfo() *ServerRpcProto { if x != nil { return x.LeaderInfo } return nil } func (x *FollowerInfoProto) GetOutstandingOp() uint32 { if x != nil { return x.OutstandingOp } return 0 } type CandidateInfoProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LastLeaderElapsedTimeMs uint64 `protobuf:"varint,1,opt,name=lastLeaderElapsedTimeMs,proto3" json:"lastLeaderElapsedTimeMs,omitempty"` } func (x *CandidateInfoProto) Reset() { *x = CandidateInfoProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CandidateInfoProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*CandidateInfoProto) ProtoMessage() {} func (x *CandidateInfoProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CandidateInfoProto.ProtoReflect.Descriptor instead. func (*CandidateInfoProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{41} } func (x *CandidateInfoProto) GetLastLeaderElapsedTimeMs() uint64 { if x != nil { return x.LastLeaderElapsedTimeMs } return 0 } type RoleInfoProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Self *RaftPeerProto `protobuf:"bytes,1,opt,name=self,proto3" json:"self,omitempty"` Role RaftPeerRole `protobuf:"varint,2,opt,name=role,proto3,enum=ratis.common.RaftPeerRole" json:"role,omitempty"` RoleElapsedTimeMs uint64 `protobuf:"varint,3,opt,name=roleElapsedTimeMs,proto3" json:"roleElapsedTimeMs,omitempty"` // Types that are assignable to PeerInfo: // *RoleInfoProto_LeaderInfo // *RoleInfoProto_FollowerInfo // *RoleInfoProto_CandidateInfo PeerInfo isRoleInfoProto_PeerInfo `protobuf_oneof:"PeerInfo"` } func (x *RoleInfoProto) Reset() { *x = RoleInfoProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoleInfoProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoleInfoProto) ProtoMessage() {} func (x *RoleInfoProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoleInfoProto.ProtoReflect.Descriptor instead. func (*RoleInfoProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{42} } func (x *RoleInfoProto) GetSelf() *RaftPeerProto { if x != nil { return x.Self } return nil } func (x *RoleInfoProto) GetRole() RaftPeerRole { if x != nil { return x.Role } return RaftPeerRole_LEADER } func (x *RoleInfoProto) GetRoleElapsedTimeMs() uint64 { if x != nil { return x.RoleElapsedTimeMs } return 0 } func (m *RoleInfoProto) GetPeerInfo() isRoleInfoProto_PeerInfo { if m != nil { return m.PeerInfo } return nil } func (x *RoleInfoProto) GetLeaderInfo() *LeaderInfoProto { if x, ok := x.GetPeerInfo().(*RoleInfoProto_LeaderInfo); ok { return x.LeaderInfo } return nil } func (x *RoleInfoProto) GetFollowerInfo() *FollowerInfoProto { if x, ok := x.GetPeerInfo().(*RoleInfoProto_FollowerInfo); ok { return x.FollowerInfo } return nil } func (x *RoleInfoProto) GetCandidateInfo() *CandidateInfoProto { if x, ok := x.GetPeerInfo().(*RoleInfoProto_CandidateInfo); ok { return x.CandidateInfo } return nil } type isRoleInfoProto_PeerInfo interface { isRoleInfoProto_PeerInfo() } type RoleInfoProto_LeaderInfo struct { LeaderInfo *LeaderInfoProto `protobuf:"bytes,4,opt,name=leaderInfo,proto3,oneof"` } type RoleInfoProto_FollowerInfo struct { FollowerInfo *FollowerInfoProto `protobuf:"bytes,5,opt,name=followerInfo,proto3,oneof"` } type RoleInfoProto_CandidateInfo struct { CandidateInfo *CandidateInfoProto `protobuf:"bytes,6,opt,name=candidateInfo,proto3,oneof"` } func (*RoleInfoProto_LeaderInfo) isRoleInfoProto_PeerInfo() {} func (*RoleInfoProto_FollowerInfo) isRoleInfoProto_PeerInfo() {} func (*RoleInfoProto_CandidateInfo) isRoleInfoProto_PeerInfo() {} type GroupListReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcReply *RaftRpcReplyProto `protobuf:"bytes,1,opt,name=rpcReply,proto3" json:"rpcReply,omitempty"` GroupId []*RaftGroupIdProto `protobuf:"bytes,2,rep,name=groupId,proto3" json:"groupId,omitempty"` } func (x *GroupListReplyProto) Reset() { *x = GroupListReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupListReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupListReplyProto) ProtoMessage() {} func (x *GroupListReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupListReplyProto.ProtoReflect.Descriptor instead. func (*GroupListReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{43} } func (x *GroupListReplyProto) GetRpcReply() *RaftRpcReplyProto { if x != nil { return x.RpcReply } return nil } func (x *GroupListReplyProto) GetGroupId() []*RaftGroupIdProto { if x != nil { return x.GroupId } return nil } type GroupInfoReplyProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RpcReply *RaftRpcReplyProto `protobuf:"bytes,1,opt,name=rpcReply,proto3" json:"rpcReply,omitempty"` Group *RaftGroupProto `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"` Role *RoleInfoProto `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` IsRaftStorageHealthy bool `protobuf:"varint,4,opt,name=isRaftStorageHealthy,proto3" json:"isRaftStorageHealthy,omitempty"` CommitInfos []*CommitInfoProto `protobuf:"bytes,5,rep,name=commitInfos,proto3" json:"commitInfos,omitempty"` } func (x *GroupInfoReplyProto) Reset() { *x = GroupInfoReplyProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupInfoReplyProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupInfoReplyProto) ProtoMessage() {} func (x *GroupInfoReplyProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupInfoReplyProto.ProtoReflect.Descriptor instead. func (*GroupInfoReplyProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{44} } func (x *GroupInfoReplyProto) GetRpcReply() *RaftRpcReplyProto { if x != nil { return x.RpcReply } return nil } func (x *GroupInfoReplyProto) GetGroup() *RaftGroupProto { if x != nil { return x.Group } return nil } func (x *GroupInfoReplyProto) GetRole() *RoleInfoProto { if x != nil { return x.Role } return nil } func (x *GroupInfoReplyProto) GetIsRaftStorageHealthy() bool { if x != nil { return x.IsRaftStorageHealthy } return false } func (x *GroupInfoReplyProto) GetCommitInfos() []*CommitInfoProto { if x != nil { return x.CommitInfos } return nil } type InstallSnapshotRequestProto_SnapshotChunkProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RequestId string `protobuf:"bytes,1,opt,name=requestId,proto3" json:"requestId,omitempty"` // an identifier for chunked-requests. RequestIndex uint32 `protobuf:"varint,2,opt,name=requestIndex,proto3" json:"requestIndex,omitempty"` // the index for this request chunk. Starts from 0. RaftConfiguration *RaftConfigurationProto `protobuf:"bytes,3,opt,name=raftConfiguration,proto3" json:"raftConfiguration,omitempty"` TermIndex *TermIndexProto `protobuf:"bytes,4,opt,name=termIndex,proto3" json:"termIndex,omitempty"` FileChunks []*FileChunkProto `protobuf:"bytes,5,rep,name=fileChunks,proto3" json:"fileChunks,omitempty"` TotalSize uint64 `protobuf:"varint,6,opt,name=totalSize,proto3" json:"totalSize,omitempty"` Done bool `protobuf:"varint,7,opt,name=done,proto3" json:"done,omitempty"` // whether this is the final chunk for the same req. } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) Reset() { *x = InstallSnapshotRequestProto_SnapshotChunkProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstallSnapshotRequestProto_SnapshotChunkProto) ProtoMessage() {} func (x *InstallSnapshotRequestProto_SnapshotChunkProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InstallSnapshotRequestProto_SnapshotChunkProto.ProtoReflect.Descriptor instead. func (*InstallSnapshotRequestProto_SnapshotChunkProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{19, 0} } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetRequestIndex() uint32 { if x != nil { return x.RequestIndex } return 0 } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetRaftConfiguration() *RaftConfigurationProto { if x != nil { return x.RaftConfiguration } return nil } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetTermIndex() *TermIndexProto { if x != nil { return x.TermIndex } return nil } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetFileChunks() []*FileChunkProto { if x != nil { return x.FileChunks } return nil } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetTotalSize() uint64 { if x != nil { return x.TotalSize } return 0 } func (x *InstallSnapshotRequestProto_SnapshotChunkProto) GetDone() bool { if x != nil { return x.Done } return false } type InstallSnapshotRequestProto_NotificationProto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FirstAvailableTermIndex *TermIndexProto `protobuf:"bytes,1,opt,name=firstAvailableTermIndex,proto3" json:"firstAvailableTermIndex,omitempty"` // first available log index to notify Follower to install snapshot. } func (x *InstallSnapshotRequestProto_NotificationProto) Reset() { *x = InstallSnapshotRequestProto_NotificationProto{} if protoimpl.UnsafeEnabled { mi := &file_raft_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstallSnapshotRequestProto_NotificationProto) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstallSnapshotRequestProto_NotificationProto) ProtoMessage() {} func (x *InstallSnapshotRequestProto_NotificationProto) ProtoReflect() protoreflect.Message { mi := &file_raft_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InstallSnapshotRequestProto_NotificationProto.ProtoReflect.Descriptor instead. func (*InstallSnapshotRequestProto_NotificationProto) Descriptor() ([]byte, []int) { return file_raft_proto_rawDescGZIP(), []int{19, 1} } func (x *InstallSnapshotRequestProto_NotificationProto) GetFirstAvailableTermIndex() *TermIndexProto { if x != nil { return x.FirstAvailableTermIndex } return nil } var File_raft_proto protoreflect.FileDescriptor var file_raft_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x72, 0x61, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x0e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x38, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x6a, 0x0a, 0x16, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x16, 0x52, 0x61, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x65, 0x72, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x1b, 0x6c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x6c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x52, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xc5, 0x02, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x5d, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x3a, 0x0a, 0x0e, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xfd, 0x01, 0x0a, 0x13, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x72, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x72, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x12, 0x73, 0x6c, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x6c, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x73, 0x6c, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x46, 0x0a, 0x12, 0x53, 0x6c, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x72, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x72, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x4c, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x68, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x84, 0x03, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xe2, 0x02, 0x0a, 0x17, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3e, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x02, 0x22, 0xb3, 0x06, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x64, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x61, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xd6, 0x02, 0x0a, 0x12, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x52, 0x0a, 0x11, 0x72, 0x61, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x11, 0x72, 0x61, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x74, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x1a, 0x6b, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x56, 0x0a, 0x17, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x17, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x72, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x1c, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x99, 0x02, 0x0a, 0x19, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x3b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x24, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x1a, 0x0a, 0x18, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x33, 0x0a, 0x17, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x37, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x6f, 0x0a, 0x15, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x40, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa1, 0x03, 0x0a, 0x16, 0x52, 0x61, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x61, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x22, 0x60, 0x0a, 0x1c, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x40, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x22, 0x8d, 0x05, 0x0a, 0x14, 0x52, 0x61, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x72, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x4a, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x7d, 0x0a, 0x17, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x38, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xf3, 0x01, 0x0a, 0x1b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x12, 0x49, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x04, 0x0a, 0x02, 0x4f, 0x70, 0x22, 0x5a, 0x0a, 0x15, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x15, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x41, 0x0a, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x70, 0x63, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x70, 0x63, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x22, 0x53, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0c, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x77, 0x0a, 0x11, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3c, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x22, 0x4e, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x38, 0x0a, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x0d, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x73, 0x65, 0x6c, 0x66, 0x12, 0x2e, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x3f, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0c, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x8c, 0x01, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x72, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0xac, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x52, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x72, 0x70, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x69, 0x73, 0x52, 0x61, 0x66, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x52, 0x61, 0x66, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x2a, 0x6f, 0x0a, 0x15, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x46, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x04, 0x2a, 0x54, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x4a, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x4c, 0x4c, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x37, 0x0a, 0x0c, 0x52, 0x61, 0x66, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x44, 0x49, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x4f, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x02, 0x42, 0x53, 0x0a, 0x16, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x72, 0x61, 0x74, 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x0a, 0x52, 0x61, 0x66, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x6f, 0x7a, 0x6f, 0x6e, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x61, 0x74, 0x69, 0x73, 0xa0, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_raft_proto_rawDescOnce sync.Once file_raft_proto_rawDescData = file_raft_proto_rawDesc ) func file_raft_proto_rawDescGZIP() []byte { file_raft_proto_rawDescOnce.Do(func() { file_raft_proto_rawDescData = protoimpl.X.CompressGZIP(file_raft_proto_rawDescData) }) return file_raft_proto_rawDescData } var file_raft_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_raft_proto_msgTypes = make([]protoimpl.MessageInfo, 47) var file_raft_proto_goTypes = []interface{}{ (InstallSnapshotResult)(0), // 0: ratis.common.InstallSnapshotResult (ReplicationLevel)(0), // 1: ratis.common.ReplicationLevel (RaftPeerRole)(0), // 2: ratis.common.RaftPeerRole (AppendEntriesReplyProto_AppendResult)(0), // 3: ratis.common.AppendEntriesReplyProto.AppendResult (*RaftPeerProto)(nil), // 4: ratis.common.RaftPeerProto (*RaftGroupIdProto)(nil), // 5: ratis.common.RaftGroupIdProto (*RaftGroupProto)(nil), // 6: ratis.common.RaftGroupProto (*RaftGroupMemberIdProto)(nil), // 7: ratis.common.RaftGroupMemberIdProto (*RaftConfigurationProto)(nil), // 8: ratis.common.RaftConfigurationProto (*StateMachineEntryProto)(nil), // 9: ratis.common.StateMachineEntryProto (*StateMachineLogEntryProto)(nil), // 10: ratis.common.StateMachineLogEntryProto (*MetadataProto)(nil), // 11: ratis.common.MetadataProto (*LogEntryProto)(nil), // 12: ratis.common.LogEntryProto (*TermIndexProto)(nil), // 13: ratis.common.TermIndexProto (*RaftRpcRequestProto)(nil), // 14: ratis.common.RaftRpcRequestProto (*SlidingWindowEntry)(nil), // 15: ratis.common.SlidingWindowEntry (*RaftRpcReplyProto)(nil), // 16: ratis.common.RaftRpcReplyProto (*FileChunkProto)(nil), // 17: ratis.common.FileChunkProto (*RequestVoteRequestProto)(nil), // 18: ratis.common.RequestVoteRequestProto (*RequestVoteReplyProto)(nil), // 19: ratis.common.RequestVoteReplyProto (*CommitInfoProto)(nil), // 20: ratis.common.CommitInfoProto (*AppendEntriesRequestProto)(nil), // 21: ratis.common.AppendEntriesRequestProto (*AppendEntriesReplyProto)(nil), // 22: ratis.common.AppendEntriesReplyProto (*InstallSnapshotRequestProto)(nil), // 23: ratis.common.InstallSnapshotRequestProto (*InstallSnapshotReplyProto)(nil), // 24: ratis.common.InstallSnapshotReplyProto (*ClientMessageEntryProto)(nil), // 25: ratis.common.ClientMessageEntryProto (*WriteRequestTypeProto)(nil), // 26: ratis.common.WriteRequestTypeProto (*ReadRequestTypeProto)(nil), // 27: ratis.common.ReadRequestTypeProto (*StaleReadRequestTypeProto)(nil), // 28: ratis.common.StaleReadRequestTypeProto (*WatchRequestTypeProto)(nil), // 29: ratis.common.WatchRequestTypeProto (*RaftClientRequestProto)(nil), // 30: ratis.common.RaftClientRequestProto (*NotLeaderExceptionProto)(nil), // 31: ratis.common.NotLeaderExceptionProto (*LeaderNotReadyExceptionProto)(nil), // 32: ratis.common.LeaderNotReadyExceptionProto (*NotReplicatedExceptionProto)(nil), // 33: ratis.common.NotReplicatedExceptionProto (*StateMachineExceptionProto)(nil), // 34: ratis.common.StateMachineExceptionProto (*RaftClientReplyProto)(nil), // 35: ratis.common.RaftClientReplyProto (*SetConfigurationRequestProto)(nil), // 36: ratis.common.SetConfigurationRequestProto (*GroupAddRequestProto)(nil), // 37: ratis.common.GroupAddRequestProto (*GroupRemoveRequestProto)(nil), // 38: ratis.common.GroupRemoveRequestProto (*GroupManagementRequestProto)(nil), // 39: ratis.common.GroupManagementRequestProto (*GroupListRequestProto)(nil), // 40: ratis.common.GroupListRequestProto (*GroupInfoRequestProto)(nil), // 41: ratis.common.GroupInfoRequestProto (*ServerRpcProto)(nil), // 42: ratis.common.ServerRpcProto (*LeaderInfoProto)(nil), // 43: ratis.common.LeaderInfoProto (*FollowerInfoProto)(nil), // 44: ratis.common.FollowerInfoProto (*CandidateInfoProto)(nil), // 45: ratis.common.CandidateInfoProto (*RoleInfoProto)(nil), // 46: ratis.common.RoleInfoProto (*GroupListReplyProto)(nil), // 47: ratis.common.GroupListReplyProto (*GroupInfoReplyProto)(nil), // 48: ratis.common.GroupInfoReplyProto (*InstallSnapshotRequestProto_SnapshotChunkProto)(nil), // 49: ratis.common.InstallSnapshotRequestProto.SnapshotChunkProto (*InstallSnapshotRequestProto_NotificationProto)(nil), // 50: ratis.common.InstallSnapshotRequestProto.NotificationProto } var file_raft_proto_depIdxs = []int32{ 5, // 0: ratis.common.RaftGroupProto.groupId:type_name -> ratis.common.RaftGroupIdProto 4, // 1: ratis.common.RaftGroupProto.peers:type_name -> ratis.common.RaftPeerProto 5, // 2: ratis.common.RaftGroupMemberIdProto.groupId:type_name -> ratis.common.RaftGroupIdProto 4, // 3: ratis.common.RaftConfigurationProto.peers:type_name -> ratis.common.RaftPeerProto 4, // 4: ratis.common.RaftConfigurationProto.oldPeers:type_name -> ratis.common.RaftPeerProto 9, // 5: ratis.common.StateMachineLogEntryProto.stateMachineEntry:type_name -> ratis.common.StateMachineEntryProto 10, // 6: ratis.common.LogEntryProto.stateMachineLogEntry:type_name -> ratis.common.StateMachineLogEntryProto 8, // 7: ratis.common.LogEntryProto.configurationEntry:type_name -> ratis.common.RaftConfigurationProto 11, // 8: ratis.common.LogEntryProto.metadataEntry:type_name -> ratis.common.MetadataProto 5, // 9: ratis.common.RaftRpcRequestProto.raftGroupId:type_name -> ratis.common.RaftGroupIdProto 15, // 10: ratis.common.RaftRpcRequestProto.slidingWindowEntry:type_name -> ratis.common.SlidingWindowEntry 5, // 11: ratis.common.RaftRpcReplyProto.raftGroupId:type_name -> ratis.common.RaftGroupIdProto 14, // 12: ratis.common.RequestVoteRequestProto.serverRequest:type_name -> ratis.common.RaftRpcRequestProto 13, // 13: ratis.common.RequestVoteRequestProto.candidateLastEntry:type_name -> ratis.common.TermIndexProto 16, // 14: ratis.common.RequestVoteReplyProto.serverReply:type_name -> ratis.common.RaftRpcReplyProto 4, // 15: ratis.common.CommitInfoProto.server:type_name -> ratis.common.RaftPeerProto 14, // 16: ratis.common.AppendEntriesRequestProto.serverRequest:type_name -> ratis.common.RaftRpcRequestProto 13, // 17: ratis.common.AppendEntriesRequestProto.previousLog:type_name -> ratis.common.TermIndexProto 12, // 18: ratis.common.AppendEntriesRequestProto.entries:type_name -> ratis.common.LogEntryProto 20, // 19: ratis.common.AppendEntriesRequestProto.commitInfos:type_name -> ratis.common.CommitInfoProto 16, // 20: ratis.common.AppendEntriesReplyProto.serverReply:type_name -> ratis.common.RaftRpcReplyProto 3, // 21: ratis.common.AppendEntriesReplyProto.result:type_name -> ratis.common.AppendEntriesReplyProto.AppendResult 14, // 22: ratis.common.InstallSnapshotRequestProto.serverRequest:type_name -> ratis.common.RaftRpcRequestProto 49, // 23: ratis.common.InstallSnapshotRequestProto.snapshotChunk:type_name -> ratis.common.InstallSnapshotRequestProto.SnapshotChunkProto 50, // 24: ratis.common.InstallSnapshotRequestProto.notification:type_name -> ratis.common.InstallSnapshotRequestProto.NotificationProto 16, // 25: ratis.common.InstallSnapshotReplyProto.serverReply:type_name -> ratis.common.RaftRpcReplyProto 0, // 26: ratis.common.InstallSnapshotReplyProto.result:type_name -> ratis.common.InstallSnapshotResult 1, // 27: ratis.common.WatchRequestTypeProto.replication:type_name -> ratis.common.ReplicationLevel 14, // 28: ratis.common.RaftClientRequestProto.rpcRequest:type_name -> ratis.common.RaftRpcRequestProto 25, // 29: ratis.common.RaftClientRequestProto.message:type_name -> ratis.common.ClientMessageEntryProto 26, // 30: ratis.common.RaftClientRequestProto.write:type_name -> ratis.common.WriteRequestTypeProto 27, // 31: ratis.common.RaftClientRequestProto.read:type_name -> ratis.common.ReadRequestTypeProto 28, // 32: ratis.common.RaftClientRequestProto.staleRead:type_name -> ratis.common.StaleReadRequestTypeProto 29, // 33: ratis.common.RaftClientRequestProto.watch:type_name -> ratis.common.WatchRequestTypeProto 4, // 34: ratis.common.NotLeaderExceptionProto.suggestedLeader:type_name -> ratis.common.RaftPeerProto 4, // 35: ratis.common.NotLeaderExceptionProto.peersInConf:type_name -> ratis.common.RaftPeerProto 7, // 36: ratis.common.LeaderNotReadyExceptionProto.serverId:type_name -> ratis.common.RaftGroupMemberIdProto 1, // 37: ratis.common.NotReplicatedExceptionProto.replication:type_name -> ratis.common.ReplicationLevel 16, // 38: ratis.common.RaftClientReplyProto.rpcReply:type_name -> ratis.common.RaftRpcReplyProto 25, // 39: ratis.common.RaftClientReplyProto.message:type_name -> ratis.common.ClientMessageEntryProto 31, // 40: ratis.common.RaftClientReplyProto.notLeaderException:type_name -> ratis.common.NotLeaderExceptionProto 33, // 41: ratis.common.RaftClientReplyProto.notReplicatedException:type_name -> ratis.common.NotReplicatedExceptionProto 34, // 42: ratis.common.RaftClientReplyProto.stateMachineException:type_name -> ratis.common.StateMachineExceptionProto 32, // 43: ratis.common.RaftClientReplyProto.leaderNotReadyException:type_name -> ratis.common.LeaderNotReadyExceptionProto 20, // 44: ratis.common.RaftClientReplyProto.commitInfos:type_name -> ratis.common.CommitInfoProto 14, // 45: ratis.common.SetConfigurationRequestProto.rpcRequest:type_name -> ratis.common.RaftRpcRequestProto 4, // 46: ratis.common.SetConfigurationRequestProto.peers:type_name -> ratis.common.RaftPeerProto 6, // 47: ratis.common.GroupAddRequestProto.group:type_name -> ratis.common.RaftGroupProto 5, // 48: ratis.common.GroupRemoveRequestProto.groupId:type_name -> ratis.common.RaftGroupIdProto 14, // 49: ratis.common.GroupManagementRequestProto.rpcRequest:type_name -> ratis.common.RaftRpcRequestProto 37, // 50: ratis.common.GroupManagementRequestProto.groupAdd:type_name -> ratis.common.GroupAddRequestProto 38, // 51: ratis.common.GroupManagementRequestProto.groupRemove:type_name -> ratis.common.GroupRemoveRequestProto 14, // 52: ratis.common.GroupListRequestProto.rpcRequest:type_name -> ratis.common.RaftRpcRequestProto 14, // 53: ratis.common.GroupInfoRequestProto.rpcRequest:type_name -> ratis.common.RaftRpcRequestProto 5, // 54: ratis.common.GroupInfoRequestProto.groupId:type_name -> ratis.common.RaftGroupIdProto 4, // 55: ratis.common.ServerRpcProto.id:type_name -> ratis.common.RaftPeerProto 42, // 56: ratis.common.LeaderInfoProto.followerInfo:type_name -> ratis.common.ServerRpcProto 42, // 57: ratis.common.FollowerInfoProto.leaderInfo:type_name -> ratis.common.ServerRpcProto 4, // 58: ratis.common.RoleInfoProto.self:type_name -> ratis.common.RaftPeerProto 2, // 59: ratis.common.RoleInfoProto.role:type_name -> ratis.common.RaftPeerRole 43, // 60: ratis.common.RoleInfoProto.leaderInfo:type_name -> ratis.common.LeaderInfoProto 44, // 61: ratis.common.RoleInfoProto.followerInfo:type_name -> ratis.common.FollowerInfoProto 45, // 62: ratis.common.RoleInfoProto.candidateInfo:type_name -> ratis.common.CandidateInfoProto 16, // 63: ratis.common.GroupListReplyProto.rpcReply:type_name -> ratis.common.RaftRpcReplyProto 5, // 64: ratis.common.GroupListReplyProto.groupId:type_name -> ratis.common.RaftGroupIdProto 16, // 65: ratis.common.GroupInfoReplyProto.rpcReply:type_name -> ratis.common.RaftRpcReplyProto 6, // 66: ratis.common.GroupInfoReplyProto.group:type_name -> ratis.common.RaftGroupProto 46, // 67: ratis.common.GroupInfoReplyProto.role:type_name -> ratis.common.RoleInfoProto 20, // 68: ratis.common.GroupInfoReplyProto.commitInfos:type_name -> ratis.common.CommitInfoProto 8, // 69: ratis.common.InstallSnapshotRequestProto.SnapshotChunkProto.raftConfiguration:type_name -> ratis.common.RaftConfigurationProto 13, // 70: ratis.common.InstallSnapshotRequestProto.SnapshotChunkProto.termIndex:type_name -> ratis.common.TermIndexProto 17, // 71: ratis.common.InstallSnapshotRequestProto.SnapshotChunkProto.fileChunks:type_name -> ratis.common.FileChunkProto 13, // 72: ratis.common.InstallSnapshotRequestProto.NotificationProto.firstAvailableTermIndex:type_name -> ratis.common.TermIndexProto 73, // [73:73] is the sub-list for method output_type 73, // [73:73] is the sub-list for method input_type 73, // [73:73] is the sub-list for extension type_name 73, // [73:73] is the sub-list for extension extendee 0, // [0:73] is the sub-list for field type_name } func init() { file_raft_proto_init() } func file_raft_proto_init() { if File_raft_proto != nil { return } if !protoimpl.UnsafeEnabled { file_raft_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftPeerProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftGroupIdProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftGroupProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftGroupMemberIdProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftConfigurationProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateMachineEntryProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateMachineLogEntryProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetadataProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogEntryProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TermIndexProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftRpcRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SlidingWindowEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftRpcReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileChunkProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RequestVoteRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RequestVoteReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommitInfoProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppendEntriesRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppendEntriesReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstallSnapshotRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstallSnapshotReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMessageEntryProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WriteRequestTypeProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadRequestTypeProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StaleReadRequestTypeProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchRequestTypeProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftClientRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotLeaderExceptionProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaderNotReadyExceptionProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotReplicatedExceptionProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateMachineExceptionProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftClientReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigurationRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupAddRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupRemoveRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupManagementRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupListRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfoRequestProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerRpcProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaderInfoProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FollowerInfoProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CandidateInfoProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoleInfoProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupListReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfoReplyProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstallSnapshotRequestProto_SnapshotChunkProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_raft_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstallSnapshotRequestProto_NotificationProto); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_raft_proto_msgTypes[8].OneofWrappers = []interface{}{ (*LogEntryProto_StateMachineLogEntry)(nil), (*LogEntryProto_ConfigurationEntry)(nil), (*LogEntryProto_MetadataEntry)(nil), } file_raft_proto_msgTypes[19].OneofWrappers = []interface{}{ (*InstallSnapshotRequestProto_SnapshotChunk)(nil), (*InstallSnapshotRequestProto_Notification)(nil), } file_raft_proto_msgTypes[20].OneofWrappers = []interface{}{ (*InstallSnapshotReplyProto_RequestIndex)(nil), (*InstallSnapshotReplyProto_SnapshotIndex)(nil), } file_raft_proto_msgTypes[26].OneofWrappers = []interface{}{ (*RaftClientRequestProto_Write)(nil), (*RaftClientRequestProto_Read)(nil), (*RaftClientRequestProto_StaleRead)(nil), (*RaftClientRequestProto_Watch)(nil), } file_raft_proto_msgTypes[31].OneofWrappers = []interface{}{ (*RaftClientReplyProto_NotLeaderException)(nil), (*RaftClientReplyProto_NotReplicatedException)(nil), (*RaftClientReplyProto_StateMachineException)(nil), (*RaftClientReplyProto_LeaderNotReadyException)(nil), } file_raft_proto_msgTypes[35].OneofWrappers = []interface{}{ (*GroupManagementRequestProto_GroupAdd)(nil), (*GroupManagementRequestProto_GroupRemove)(nil), } file_raft_proto_msgTypes[42].OneofWrappers = []interface{}{ (*RoleInfoProto_LeaderInfo)(nil), (*RoleInfoProto_FollowerInfo)(nil), (*RoleInfoProto_CandidateInfo)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_raft_proto_rawDesc, NumEnums: 4, NumMessages: 47, NumExtensions: 0, NumServices: 0, }, GoTypes: file_raft_proto_goTypes, DependencyIndexes: file_raft_proto_depIdxs, EnumInfos: file_raft_proto_enumTypes, MessageInfos: file_raft_proto_msgTypes, }.Build() File_raft_proto = out.File file_raft_proto_rawDesc = nil file_raft_proto_goTypes = nil file_raft_proto_depIdxs = nil }