vermeer/apps/protos/hugegraph-pd-grpc/metapb/metapb.pb.go (2,960 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.28.0 // protoc v3.21.1 // source: metapb.proto package metapb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ClusterState int32 const ( // 集群健康 ClusterState_Cluster_OK ClusterState = 0 // 分区警告,存在部分故障节点,短时间不影响读写 ClusterState_Cluster_Warn ClusterState = 2 // 分区下线,可以读,无法写 ClusterState_Cluster_Offline ClusterState = 10 // 分区故障,无法读写,需要尽快修复故障节点。 ClusterState_Cluster_Fault ClusterState = 11 ClusterState_Cluster_Not_Ready ClusterState = -1 ) // Enum value maps for ClusterState. var ( ClusterState_name = map[int32]string{ 0: "Cluster_OK", 2: "Cluster_Warn", 10: "Cluster_Offline", 11: "Cluster_Fault", -1: "Cluster_Not_Ready", } ClusterState_value = map[string]int32{ "Cluster_OK": 0, "Cluster_Warn": 2, "Cluster_Offline": 10, "Cluster_Fault": 11, "Cluster_Not_Ready": -1, } ) func (x ClusterState) Enum() *ClusterState { p := new(ClusterState) *p = x return p } func (x ClusterState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ClusterState) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[0].Descriptor() } func (ClusterState) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[0] } func (x ClusterState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ClusterState.Descriptor instead. func (ClusterState) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{0} } type StoreState int32 const ( StoreState_Unknown StoreState = 0 // 未激活 StoreState_Pending StoreState = 4 // 在线 StoreState_Up StoreState = 1 // 离线 StoreState_Offline StoreState = 2 // 下线中 StoreState_Exiting StoreState = 5 // 已下线 StoreState_Tombstone StoreState = 3 ) // Enum value maps for StoreState. var ( StoreState_name = map[int32]string{ 0: "Unknown", 4: "Pending", 1: "Up", 2: "Offline", 5: "Exiting", 3: "Tombstone", } StoreState_value = map[string]int32{ "Unknown": 0, "Pending": 4, "Up": 1, "Offline": 2, "Exiting": 5, "Tombstone": 3, } ) func (x StoreState) Enum() *StoreState { p := new(StoreState) *p = x return p } func (x StoreState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (StoreState) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[1].Descriptor() } func (StoreState) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[1] } func (x StoreState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use StoreState.Descriptor instead. func (StoreState) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{1} } type ShardRole int32 const ( ShardRole_None ShardRole = 0 ShardRole_Leader ShardRole = 1 ShardRole_Follower ShardRole = 2 // Learner/None -> Learner ShardRole_Learner ShardRole = 3 ) // Enum value maps for ShardRole. var ( ShardRole_name = map[int32]string{ 0: "None", 1: "Leader", 2: "Follower", 3: "Learner", } ShardRole_value = map[string]int32{ "None": 0, "Leader": 1, "Follower": 2, "Learner": 3, } ) func (x ShardRole) Enum() *ShardRole { p := new(ShardRole) *p = x return p } func (x ShardRole) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ShardRole) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[2].Descriptor() } func (ShardRole) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[2] } func (x ShardRole) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ShardRole.Descriptor instead. func (ShardRole) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{2} } // 分区工作状态 type PartitionState int32 const ( PartitionState_PState_None PartitionState = 0 // PartitionState_PState_Normal PartitionState = 1 // 分区警告,存在部分故障节点,短时间不影响读写 PartitionState_PState_Warn PartitionState = 2 // 分区下线,可以读,无法写 PartitionState_PState_Offline PartitionState = 10 // 分区故障,无法读写,需要尽快修复故障节点。 PartitionState_PState_Fault PartitionState = 11 ) // Enum value maps for PartitionState. var ( PartitionState_name = map[int32]string{ 0: "PState_None", 1: "PState_Normal", 2: "PState_Warn", 10: "PState_Offline", 11: "PState_Fault", } PartitionState_value = map[string]int32{ "PState_None": 0, "PState_Normal": 1, "PState_Warn": 2, "PState_Offline": 10, "PState_Fault": 11, } ) func (x PartitionState) Enum() *PartitionState { p := new(PartitionState) *p = x return p } func (x PartitionState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PartitionState) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[3].Descriptor() } func (PartitionState) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[3] } func (x PartitionState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PartitionState.Descriptor instead. func (PartitionState) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{3} } type ShardState int32 const ( ShardState_SState_None ShardState = 0 // 正常 ShardState_SState_Normal ShardState = 1 // 安装快照 ShardState_SState_Snapshot ShardState = 2 // 离线 ShardState_SState_Offline ShardState = 10 ) // Enum value maps for ShardState. var ( ShardState_name = map[int32]string{ 0: "SState_None", 1: "SState_Normal", 2: "SState_Snapshot", 10: "SState_Offline", } ShardState_value = map[string]int32{ "SState_None": 0, "SState_Normal": 1, "SState_Snapshot": 2, "SState_Offline": 10, } ) func (x ShardState) Enum() *ShardState { p := new(ShardState) *p = x return p } func (x ShardState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ShardState) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[4].Descriptor() } func (ShardState) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[4] } func (x ShardState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ShardState.Descriptor instead. func (ShardState) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{4} } type GraphMode int32 const ( GraphMode_ReadWrite GraphMode = 0 GraphMode_ReadOnly GraphMode = 1 GraphMode_WriteOnly GraphMode = 2 ) // Enum value maps for GraphMode. var ( GraphMode_name = map[int32]string{ 0: "ReadWrite", 1: "ReadOnly", 2: "WriteOnly", } GraphMode_value = map[string]int32{ "ReadWrite": 0, "ReadOnly": 1, "WriteOnly": 2, } ) func (x GraphMode) Enum() *GraphMode { p := new(GraphMode) *p = x return p } func (x GraphMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GraphMode) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[5].Descriptor() } func (GraphMode) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[5] } func (x GraphMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GraphMode.Descriptor instead. func (GraphMode) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{5} } type GraphModeReason int32 const ( GraphModeReason_Empty GraphModeReason = 0 // 空 GraphModeReason_Initiative GraphModeReason = 1 // 主动的状态设置 GraphModeReason_Quota GraphModeReason = 2 // 达到限额条件 ) // Enum value maps for GraphModeReason. var ( GraphModeReason_name = map[int32]string{ 0: "Empty", 1: "Initiative", 2: "Quota", } GraphModeReason_value = map[string]int32{ "Empty": 0, "Initiative": 1, "Quota": 2, } ) func (x GraphModeReason) Enum() *GraphModeReason { p := new(GraphModeReason) *p = x return p } func (x GraphModeReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GraphModeReason) Descriptor() protoreflect.EnumDescriptor { return file_metapb_proto_enumTypes[6].Descriptor() } func (GraphModeReason) Type() protoreflect.EnumType { return &file_metapb_proto_enumTypes[6] } func (x GraphModeReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GraphModeReason.Descriptor instead. func (GraphModeReason) EnumDescriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{6} } // 集群状态 type ClusterStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields State ClusterState `protobuf:"varint,1,opt,name=state,proto3,enum=metapb.ClusterState" json:"state,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` Timestamp uint64 `protobuf:"varint,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *ClusterStats) Reset() { *x = ClusterStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClusterStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClusterStats) ProtoMessage() {} func (x *ClusterStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 ClusterStats.ProtoReflect.Descriptor instead. func (*ClusterStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{0} } func (x *ClusterStats) GetState() ClusterState { if x != nil { return x.State } return ClusterState_Cluster_OK } func (x *ClusterStats) GetMessage() string { if x != nil { return x.Message } return "" } func (x *ClusterStats) GetTimestamp() uint64 { if x != nil { return x.Timestamp } return 0 } // Store label for Storage grouping. type StoreLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *StoreLabel) Reset() { *x = StoreLabel{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StoreLabel) String() string { return protoimpl.X.MessageStringOf(x) } func (*StoreLabel) ProtoMessage() {} func (x *StoreLabel) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 StoreLabel.ProtoReflect.Descriptor instead. func (*StoreLabel) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{1} } func (x *StoreLabel) GetKey() string { if x != nil { return x.Key } return "" } func (x *StoreLabel) GetValue() string { if x != nil { return x.Value } return "" } type Store struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Address to handle client requests Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` RaftAddress string `protobuf:"bytes,3,opt,name=raft_address,json=raftAddress,proto3" json:"raft_address,omitempty"` Labels []*StoreLabel `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty"` // Store软件版本号 Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"` State StoreState `protobuf:"varint,6,opt,name=state,proto3,enum=metapb.StoreState" json:"state,omitempty"` // The start timestamp of the current store StartTimestamp int64 `protobuf:"varint,7,opt,name=start_timestamp,json=startTimestamp,proto3" json:"start_timestamp,omitempty"` DeployPath string `protobuf:"bytes,8,opt,name=deploy_path,json=deployPath,proto3" json:"deploy_path,omitempty"` // The last heartbeat timestamp of the store. LastHeartbeat int64 `protobuf:"varint,9,opt,name=last_heartbeat,json=lastHeartbeat,proto3" json:"last_heartbeat,omitempty"` Stats *StoreStats `protobuf:"bytes,10,opt,name=stats,proto3" json:"stats,omitempty"` // 数据格式版本号 DataVersion int32 `protobuf:"varint,11,opt,name=data_version,json=dataVersion,proto3" json:"data_version,omitempty"` Cores int32 `protobuf:"varint,12,opt,name=cores,proto3" json:"cores,omitempty"` DataPath string `protobuf:"bytes,13,opt,name=data_path,json=dataPath,proto3" json:"data_path,omitempty"` } func (x *Store) Reset() { *x = Store{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Store) String() string { return protoimpl.X.MessageStringOf(x) } func (*Store) ProtoMessage() {} func (x *Store) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 Store.ProtoReflect.Descriptor instead. func (*Store) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{2} } func (x *Store) GetId() uint64 { if x != nil { return x.Id } return 0 } func (x *Store) GetAddress() string { if x != nil { return x.Address } return "" } func (x *Store) GetRaftAddress() string { if x != nil { return x.RaftAddress } return "" } func (x *Store) GetLabels() []*StoreLabel { if x != nil { return x.Labels } return nil } func (x *Store) GetVersion() string { if x != nil { return x.Version } return "" } func (x *Store) GetState() StoreState { if x != nil { return x.State } return StoreState_Unknown } func (x *Store) GetStartTimestamp() int64 { if x != nil { return x.StartTimestamp } return 0 } func (x *Store) GetDeployPath() string { if x != nil { return x.DeployPath } return "" } func (x *Store) GetLastHeartbeat() int64 { if x != nil { return x.LastHeartbeat } return 0 } func (x *Store) GetStats() *StoreStats { if x != nil { return x.Stats } return nil } func (x *Store) GetDataVersion() int32 { if x != nil { return x.DataVersion } return 0 } func (x *Store) GetCores() int32 { if x != nil { return x.Cores } return 0 } func (x *Store) GetDataPath() string { if x != nil { return x.DataPath } return "" } type Shard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StoreId uint64 `protobuf:"varint,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` Role ShardRole `protobuf:"varint,3,opt,name=role,proto3,enum=metapb.ShardRole" json:"role,omitempty"` } func (x *Shard) Reset() { *x = Shard{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Shard) String() string { return protoimpl.X.MessageStringOf(x) } func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 Shard.ProtoReflect.Descriptor instead. func (*Shard) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{3} } func (x *Shard) GetStoreId() uint64 { if x != nil { return x.StoreId } return 0 } func (x *Shard) GetRole() ShardRole { if x != nil { return x.Role } return ShardRole_None } type ShardGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Version uint64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` ConfVer uint64 `protobuf:"varint,3,opt,name=conf_ver,json=confVer,proto3" json:"conf_ver,omitempty"` Shards []*Shard `protobuf:"bytes,6,rep,name=shards,proto3" json:"shards,omitempty"` State PartitionState `protobuf:"varint,10,opt,name=state,proto3,enum=metapb.PartitionState" json:"state,omitempty"` Message string `protobuf:"bytes,11,opt,name=message,proto3" json:"message,omitempty"` } func (x *ShardGroup) Reset() { *x = ShardGroup{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShardGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShardGroup) ProtoMessage() {} func (x *ShardGroup) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 ShardGroup.ProtoReflect.Descriptor instead. func (*ShardGroup) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{4} } func (x *ShardGroup) GetId() uint32 { if x != nil { return x.Id } return 0 } func (x *ShardGroup) GetVersion() uint64 { if x != nil { return x.Version } return 0 } func (x *ShardGroup) GetConfVer() uint64 { if x != nil { return x.ConfVer } return 0 } func (x *ShardGroup) GetShards() []*Shard { if x != nil { return x.Shards } return nil } func (x *ShardGroup) GetState() PartitionState { if x != nil { return x.State } return PartitionState_PState_None } func (x *ShardGroup) GetMessage() string { if x != nil { return x.Message } return "" } type Graph struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GraphName string `protobuf:"bytes,2,opt,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` // 分区数量,0表示无效,不能大于raft分组总数 PartitionCount int32 `protobuf:"varint,3,opt,name=partition_count,json=partitionCount,proto3" json:"partition_count,omitempty"` // 当前工作状态 State PartitionState `protobuf:"varint,10,opt,name=state,proto3,enum=metapb.PartitionState" json:"state,omitempty"` Message string `protobuf:"bytes,11,opt,name=message,proto3" json:"message,omitempty"` GraphState *GraphState `protobuf:"bytes,12,opt,name=graph_state,json=graphState,proto3" json:"graph_state,omitempty"` } func (x *Graph) Reset() { *x = Graph{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Graph) String() string { return protoimpl.X.MessageStringOf(x) } func (*Graph) ProtoMessage() {} func (x *Graph) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 Graph.ProtoReflect.Descriptor instead. func (*Graph) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{5} } func (x *Graph) GetGraphName() string { if x != nil { return x.GraphName } return "" } func (x *Graph) GetPartitionCount() int32 { if x != nil { return x.PartitionCount } return 0 } func (x *Graph) GetState() PartitionState { if x != nil { return x.State } return PartitionState_PState_None } func (x *Graph) GetMessage() string { if x != nil { return x.Message } return "" } func (x *Graph) GetGraphState() *GraphState { if x != nil { return x.GraphState } return nil } type PartitionV36 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` GraphName string `protobuf:"bytes,3,opt,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` // 分区范围 [start_key, end_key). StartKey uint64 `protobuf:"varint,4,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` EndKey uint64 `protobuf:"varint,5,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` Shards []*Shard `protobuf:"bytes,6,rep,name=shards,proto3" json:"shards,omitempty"` // Leader任期,leader切换后递增 Version uint64 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` // shards版本号,每次改变后递增 ConfVer uint64 `protobuf:"varint,8,opt,name=conf_ver,json=confVer,proto3" json:"conf_ver,omitempty"` // 当前工作状态 State PartitionState `protobuf:"varint,10,opt,name=state,proto3,enum=metapb.PartitionState" json:"state,omitempty"` Message string `protobuf:"bytes,11,opt,name=message,proto3" json:"message,omitempty"` } func (x *PartitionV36) Reset() { *x = PartitionV36{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartitionV36) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartitionV36) ProtoMessage() {} func (x *PartitionV36) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PartitionV36.ProtoReflect.Descriptor instead. func (*PartitionV36) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{6} } func (x *PartitionV36) GetId() uint32 { if x != nil { return x.Id } return 0 } func (x *PartitionV36) GetGraphName() string { if x != nil { return x.GraphName } return "" } func (x *PartitionV36) GetStartKey() uint64 { if x != nil { return x.StartKey } return 0 } func (x *PartitionV36) GetEndKey() uint64 { if x != nil { return x.EndKey } return 0 } func (x *PartitionV36) GetShards() []*Shard { if x != nil { return x.Shards } return nil } func (x *PartitionV36) GetVersion() uint64 { if x != nil { return x.Version } return 0 } func (x *PartitionV36) GetConfVer() uint64 { if x != nil { return x.ConfVer } return 0 } func (x *PartitionV36) GetState() PartitionState { if x != nil { return x.State } return PartitionState_PState_None } func (x *PartitionV36) GetMessage() string { if x != nil { return x.Message } return "" } type Partition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` GraphName string `protobuf:"bytes,3,opt,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` // 分区范围 [start_key, end_key). StartKey uint64 `protobuf:"varint,4,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` EndKey uint64 `protobuf:"varint,5,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` // Partition 对象不在保存 shard list(根据对应的shard group 去查询), version 和 conf version不再有实际的意义 // repeated Shard shards = 6; // key range 每次改变后递增 Version uint64 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` // shards版本号,每次改变后递增 // uint64 conf_ver = 8; // 当前工作状态 State PartitionState `protobuf:"varint,10,opt,name=state,proto3,enum=metapb.PartitionState" json:"state,omitempty"` Message string `protobuf:"bytes,11,opt,name=message,proto3" json:"message,omitempty"` } func (x *Partition) Reset() { *x = Partition{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Partition) String() string { return protoimpl.X.MessageStringOf(x) } func (*Partition) ProtoMessage() {} func (x *Partition) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 Partition.ProtoReflect.Descriptor instead. func (*Partition) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{7} } func (x *Partition) GetId() uint32 { if x != nil { return x.Id } return 0 } func (x *Partition) GetGraphName() string { if x != nil { return x.GraphName } return "" } func (x *Partition) GetStartKey() uint64 { if x != nil { return x.StartKey } return 0 } func (x *Partition) GetEndKey() uint64 { if x != nil { return x.EndKey } return 0 } func (x *Partition) GetVersion() uint64 { if x != nil { return x.Version } return 0 } func (x *Partition) GetState() PartitionState { if x != nil { return x.State } return PartitionState_PState_None } func (x *Partition) GetMessage() string { if x != nil { return x.Message } return "" } type PartitionShard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Partition *Partition `protobuf:"bytes,1,opt,name=partition,proto3" json:"partition,omitempty"` Leader *Shard `protobuf:"bytes,2,opt,name=leader,proto3" json:"leader,omitempty"` // 离线的Shard OfflineShards []*Shard `protobuf:"bytes,3,rep,name=offline_shards,json=offlineShards,proto3" json:"offline_shards,omitempty"` } func (x *PartitionShard) Reset() { *x = PartitionShard{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartitionShard) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartitionShard) ProtoMessage() {} func (x *PartitionShard) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PartitionShard.ProtoReflect.Descriptor instead. func (*PartitionShard) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{8} } func (x *PartitionShard) GetPartition() *Partition { if x != nil { return x.Partition } return nil } func (x *PartitionShard) GetLeader() *Shard { if x != nil { return x.Leader } return nil } func (x *PartitionShard) GetOfflineShards() []*Shard { if x != nil { return x.OfflineShards } return nil } // 记录分区所在的存储位置 type PartitionStore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PartitionId uint32 `protobuf:"varint,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` GraphName string `protobuf:"bytes,3,opt,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` // 存储位置 StoreLocation string `protobuf:"bytes,4,opt,name=store_location,json=storeLocation,proto3" json:"store_location,omitempty"` } func (x *PartitionStore) Reset() { *x = PartitionStore{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartitionStore) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartitionStore) ProtoMessage() {} func (x *PartitionStore) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PartitionStore.ProtoReflect.Descriptor instead. func (*PartitionStore) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{9} } func (x *PartitionStore) GetPartitionId() uint32 { if x != nil { return x.PartitionId } return 0 } func (x *PartitionStore) GetGraphName() string { if x != nil { return x.GraphName } return "" } func (x *PartitionStore) GetStoreLocation() string { if x != nil { return x.StoreLocation } return "" } type PartitionRaft struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PartitionId uint32 `protobuf:"varint,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` GraphName string `protobuf:"bytes,3,opt,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` // 存储位置 RaftLocation string `protobuf:"bytes,4,opt,name=raft_location,json=raftLocation,proto3" json:"raft_location,omitempty"` } func (x *PartitionRaft) Reset() { *x = PartitionRaft{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartitionRaft) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartitionRaft) ProtoMessage() {} func (x *PartitionRaft) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PartitionRaft.ProtoReflect.Descriptor instead. func (*PartitionRaft) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{10} } func (x *PartitionRaft) GetPartitionId() uint32 { if x != nil { return x.PartitionId } return 0 } func (x *PartitionRaft) GetGraphName() string { if x != nil { return x.GraphName } return "" } func (x *PartitionRaft) GetRaftLocation() string { if x != nil { return x.RaftLocation } return "" } type ShardStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StoreId uint64 `protobuf:"varint,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` Role ShardRole `protobuf:"varint,3,opt,name=role,proto3,enum=metapb.ShardRole" json:"role,omitempty"` State ShardState `protobuf:"varint,4,opt,name=state,proto3,enum=metapb.ShardState" json:"state,omitempty"` // 安装快照的进度 Progress uint32 `protobuf:"varint,5,opt,name=progress,proto3" json:"progress,omitempty"` } func (x *ShardStats) Reset() { *x = ShardStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShardStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShardStats) ProtoMessage() {} func (x *ShardStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 ShardStats.ProtoReflect.Descriptor instead. func (*ShardStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{11} } func (x *ShardStats) GetStoreId() uint64 { if x != nil { return x.StoreId } return 0 } func (x *ShardStats) GetRole() ShardRole { if x != nil { return x.Role } return ShardRole_None } func (x *ShardStats) GetState() ShardState { if x != nil { return x.State } return ShardState_SState_None } func (x *ShardStats) GetProgress() uint32 { if x != nil { return x.Progress } return 0 } type PartitionStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // raft分组的任期. LeaderTerm uint64 `protobuf:"varint,2,opt,name=leader_term,json=leaderTerm,proto3" json:"leader_term,omitempty"` GraphName []string `protobuf:"bytes,3,rep,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` Leader *Shard `protobuf:"bytes,4,opt,name=leader,proto3" json:"leader,omitempty"` // 离线 shards Shard []*Shard `protobuf:"bytes,5,rep,name=shard,proto3" json:"shard,omitempty"` Learner []*Shard `protobuf:"bytes,6,rep,name=learner,proto3" json:"learner,omitempty"` ConfVer uint64 `protobuf:"varint,7,opt,name=conf_ver,json=confVer,proto3" json:"conf_ver,omitempty"` // 分区状态 State PartitionState `protobuf:"varint,8,opt,name=state,proto3,enum=metapb.PartitionState" json:"state,omitempty"` ShardStats []*ShardStats `protobuf:"bytes,9,rep,name=shardStats,proto3" json:"shardStats,omitempty"` // 分区近似大小 ApproximateSize uint64 `protobuf:"varint,10,opt,name=approximate_size,json=approximateSize,proto3" json:"approximate_size,omitempty"` // 分区key的近似数量 ApproximateKeys uint64 `protobuf:"varint,13,opt,name=approximate_keys,json=approximateKeys,proto3" json:"approximate_keys,omitempty"` // heartbeat timestamp Timestamp int64 `protobuf:"varint,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *PartitionStats) Reset() { *x = PartitionStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartitionStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartitionStats) ProtoMessage() {} func (x *PartitionStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PartitionStats.ProtoReflect.Descriptor instead. func (*PartitionStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{12} } func (x *PartitionStats) GetId() uint32 { if x != nil { return x.Id } return 0 } func (x *PartitionStats) GetLeaderTerm() uint64 { if x != nil { return x.LeaderTerm } return 0 } func (x *PartitionStats) GetGraphName() []string { if x != nil { return x.GraphName } return nil } func (x *PartitionStats) GetLeader() *Shard { if x != nil { return x.Leader } return nil } func (x *PartitionStats) GetShard() []*Shard { if x != nil { return x.Shard } return nil } func (x *PartitionStats) GetLearner() []*Shard { if x != nil { return x.Learner } return nil } func (x *PartitionStats) GetConfVer() uint64 { if x != nil { return x.ConfVer } return 0 } func (x *PartitionStats) GetState() PartitionState { if x != nil { return x.State } return PartitionState_PState_None } func (x *PartitionStats) GetShardStats() []*ShardStats { if x != nil { return x.ShardStats } return nil } func (x *PartitionStats) GetApproximateSize() uint64 { if x != nil { return x.ApproximateSize } return 0 } func (x *PartitionStats) GetApproximateKeys() uint64 { if x != nil { return x.ApproximateKeys } return 0 } func (x *PartitionStats) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } type GraphStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 图名 GraphName string `protobuf:"bytes,1,opt,name=graph_name,json=graphName,proto3" json:"graph_name,omitempty"` // 分区近似大小 ApproximateSize uint64 `protobuf:"varint,2,opt,name=approximate_size,json=approximateSize,proto3" json:"approximate_size,omitempty"` // 分区key的近似数量 ApproximateKeys uint64 `protobuf:"varint,3,opt,name=approximate_keys,json=approximateKeys,proto3" json:"approximate_keys,omitempty"` // // committed index // uint64 committed_index = 4; PartitionId uint32 `protobuf:"varint,5,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` Role ShardRole `protobuf:"varint,6,opt,name=role,proto3,enum=metapb.ShardRole" json:"role,omitempty"` // 当前工作状态 WorkState PartitionState `protobuf:"varint,8,opt,name=work_state,json=workState,proto3,enum=metapb.PartitionState" json:"work_state,omitempty"` } func (x *GraphStats) Reset() { *x = GraphStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GraphStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*GraphStats) ProtoMessage() {} func (x *GraphStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 GraphStats.ProtoReflect.Descriptor instead. func (*GraphStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{13} } func (x *GraphStats) GetGraphName() string { if x != nil { return x.GraphName } return "" } func (x *GraphStats) GetApproximateSize() uint64 { if x != nil { return x.ApproximateSize } return 0 } func (x *GraphStats) GetApproximateKeys() uint64 { if x != nil { return x.ApproximateKeys } return 0 } func (x *GraphStats) GetPartitionId() uint32 { if x != nil { return x.PartitionId } return 0 } func (x *GraphStats) GetRole() ShardRole { if x != nil { return x.Role } return ShardRole_None } func (x *GraphStats) GetWorkState() PartitionState { if x != nil { return x.WorkState } return PartitionState_PState_None } type RaftStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // partition id PartitionId uint32 `protobuf:"varint,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` // committed index CommittedIndex uint64 `protobuf:"varint,2,opt,name=committed_index,json=committedIndex,proto3" json:"committed_index,omitempty"` } func (x *RaftStats) Reset() { *x = RaftStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RaftStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*RaftStats) ProtoMessage() {} func (x *RaftStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 RaftStats.ProtoReflect.Descriptor instead. func (*RaftStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{14} } func (x *RaftStats) GetPartitionId() uint32 { if x != nil { return x.PartitionId } return 0 } func (x *RaftStats) GetCommittedIndex() uint64 { if x != nil { return x.CommittedIndex } return 0 } type TimeInterval struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unix timestamp in seconds of the start of this period. StartTimestamp uint64 `protobuf:"varint,1,opt,name=start_timestamp,json=startTimestamp,proto3" json:"start_timestamp,omitempty"` // The unix timestamp in seconds of the end of this period. EndTimestamp uint64 `protobuf:"varint,2,opt,name=end_timestamp,json=endTimestamp,proto3" json:"end_timestamp,omitempty"` } func (x *TimeInterval) Reset() { *x = TimeInterval{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TimeInterval) String() string { return protoimpl.X.MessageStringOf(x) } func (*TimeInterval) ProtoMessage() {} func (x *TimeInterval) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 TimeInterval.ProtoReflect.Descriptor instead. func (*TimeInterval) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{15} } func (x *TimeInterval) GetStartTimestamp() uint64 { if x != nil { return x.StartTimestamp } return 0 } func (x *TimeInterval) GetEndTimestamp() uint64 { if x != nil { return x.EndTimestamp } return 0 } type RecordPair struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` Value uint64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *RecordPair) Reset() { *x = RecordPair{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecordPair) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecordPair) ProtoMessage() {} func (x *RecordPair) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 RecordPair.ProtoReflect.Descriptor instead. func (*RecordPair) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{16} } func (x *RecordPair) GetKey() string { if x != nil { return x.Key } return "" } func (x *RecordPair) GetValue() uint64 { if x != nil { return x.Value } return 0 } type QueryStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GC uint64 `protobuf:"varint,1,opt,name=GC,proto3" json:"GC,omitempty"` Get uint64 `protobuf:"varint,2,opt,name=Get,proto3" json:"Get,omitempty"` Scan uint64 `protobuf:"varint,3,opt,name=Scan,proto3" json:"Scan,omitempty"` Coprocessor uint64 `protobuf:"varint,4,opt,name=Coprocessor,proto3" json:"Coprocessor,omitempty"` Delete uint64 `protobuf:"varint,5,opt,name=Delete,proto3" json:"Delete,omitempty"` DeleteRange uint64 `protobuf:"varint,6,opt,name=DeleteRange,proto3" json:"DeleteRange,omitempty"` Put uint64 `protobuf:"varint,7,opt,name=Put,proto3" json:"Put,omitempty"` } func (x *QueryStats) Reset() { *x = QueryStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueryStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueryStats) ProtoMessage() {} func (x *QueryStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 QueryStats.ProtoReflect.Descriptor instead. func (*QueryStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{17} } func (x *QueryStats) GetGC() uint64 { if x != nil { return x.GC } return 0 } func (x *QueryStats) GetGet() uint64 { if x != nil { return x.Get } return 0 } func (x *QueryStats) GetScan() uint64 { if x != nil { return x.Scan } return 0 } func (x *QueryStats) GetCoprocessor() uint64 { if x != nil { return x.Coprocessor } return 0 } func (x *QueryStats) GetDelete() uint64 { if x != nil { return x.Delete } return 0 } func (x *QueryStats) GetDeleteRange() uint64 { if x != nil { return x.DeleteRange } return 0 } func (x *QueryStats) GetPut() uint64 { if x != nil { return x.Put } return 0 } type StoreStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StoreId uint64 `protobuf:"varint,1,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` // Capacity for the store. Capacity uint64 `protobuf:"varint,2,opt,name=capacity,proto3" json:"capacity,omitempty"` // Available size for the store. Available uint64 `protobuf:"varint,3,opt,name=available,proto3" json:"available,omitempty"` // Total partition count in this store. PartitionCount uint32 `protobuf:"varint,4,opt,name=partition_count,json=partitionCount,proto3" json:"partition_count,omitempty"` // Current sending snapshot count. SendingSnapCount uint32 `protobuf:"varint,5,opt,name=sending_snap_count,json=sendingSnapCount,proto3" json:"sending_snap_count,omitempty"` // Current receiving snapshot count. ReceivingSnapCount uint32 `protobuf:"varint,6,opt,name=receiving_snap_count,json=receivingSnapCount,proto3" json:"receiving_snap_count,omitempty"` // When the store is started (unix timestamp in seconds). StartTime uint32 `protobuf:"varint,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // How many partition is applying snapshot. ApplyingSnapCount uint32 `protobuf:"varint,8,opt,name=applying_snap_count,json=applyingSnapCount,proto3" json:"applying_snap_count,omitempty"` // If the store is busy IsBusy bool `protobuf:"varint,9,opt,name=is_busy,json=isBusy,proto3" json:"is_busy,omitempty"` // Actually used space by db UsedSize uint64 `protobuf:"varint,10,opt,name=used_size,json=usedSize,proto3" json:"used_size,omitempty"` // Bytes written for the store during this period. BytesWritten uint64 `protobuf:"varint,11,opt,name=bytes_written,json=bytesWritten,proto3" json:"bytes_written,omitempty"` // Keys written for the store during this period. KeysWritten uint64 `protobuf:"varint,12,opt,name=keys_written,json=keysWritten,proto3" json:"keys_written,omitempty"` // Bytes read for the store during this period. BytesRead uint64 `protobuf:"varint,13,opt,name=bytes_read,json=bytesRead,proto3" json:"bytes_read,omitempty"` // Keys read for the store during this period. KeysRead uint64 `protobuf:"varint,14,opt,name=keys_read,json=keysRead,proto3" json:"keys_read,omitempty"` // Actually reported time interval Interval *TimeInterval `protobuf:"bytes,15,opt,name=interval,proto3" json:"interval,omitempty"` // Threads' CPU usages in the store CpuUsages []*RecordPair `protobuf:"bytes,16,rep,name=cpu_usages,json=cpuUsages,proto3" json:"cpu_usages,omitempty"` // Threads' read disk I/O rates in the store ReadIoRates []*RecordPair `protobuf:"bytes,17,rep,name=read_io_rates,json=readIoRates,proto3" json:"read_io_rates,omitempty"` // Threads' write disk I/O rates in the store WriteIoRates []*RecordPair `protobuf:"bytes,18,rep,name=write_io_rates,json=writeIoRates,proto3" json:"write_io_rates,omitempty"` // Operations' latencies in the store OpLatencies []*RecordPair `protobuf:"bytes,19,rep,name=op_latencies,json=opLatencies,proto3" json:"op_latencies,omitempty"` // Store query stats QueryStats *QueryStats `protobuf:"bytes,21,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"` // graph stats GraphStats []*GraphStats `protobuf:"bytes,22,rep,name=graph_stats,json=graphStats,proto3" json:"graph_stats,omitempty"` // raft stats RaftStats []*RaftStats `protobuf:"bytes,23,rep,name=raft_stats,json=raftStats,proto3" json:"raft_stats,omitempty"` Cores int32 `protobuf:"varint,24,opt,name=cores,proto3" json:"cores,omitempty"` // system metrics SystemMetrics []*RecordPair `protobuf:"bytes,25,rep,name=system_metrics,json=systemMetrics,proto3" json:"system_metrics,omitempty"` } func (x *StoreStats) Reset() { *x = StoreStats{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StoreStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*StoreStats) ProtoMessage() {} func (x *StoreStats) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 StoreStats.ProtoReflect.Descriptor instead. func (*StoreStats) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{18} } func (x *StoreStats) GetStoreId() uint64 { if x != nil { return x.StoreId } return 0 } func (x *StoreStats) GetCapacity() uint64 { if x != nil { return x.Capacity } return 0 } func (x *StoreStats) GetAvailable() uint64 { if x != nil { return x.Available } return 0 } func (x *StoreStats) GetPartitionCount() uint32 { if x != nil { return x.PartitionCount } return 0 } func (x *StoreStats) GetSendingSnapCount() uint32 { if x != nil { return x.SendingSnapCount } return 0 } func (x *StoreStats) GetReceivingSnapCount() uint32 { if x != nil { return x.ReceivingSnapCount } return 0 } func (x *StoreStats) GetStartTime() uint32 { if x != nil { return x.StartTime } return 0 } func (x *StoreStats) GetApplyingSnapCount() uint32 { if x != nil { return x.ApplyingSnapCount } return 0 } func (x *StoreStats) GetIsBusy() bool { if x != nil { return x.IsBusy } return false } func (x *StoreStats) GetUsedSize() uint64 { if x != nil { return x.UsedSize } return 0 } func (x *StoreStats) GetBytesWritten() uint64 { if x != nil { return x.BytesWritten } return 0 } func (x *StoreStats) GetKeysWritten() uint64 { if x != nil { return x.KeysWritten } return 0 } func (x *StoreStats) GetBytesRead() uint64 { if x != nil { return x.BytesRead } return 0 } func (x *StoreStats) GetKeysRead() uint64 { if x != nil { return x.KeysRead } return 0 } func (x *StoreStats) GetInterval() *TimeInterval { if x != nil { return x.Interval } return nil } func (x *StoreStats) GetCpuUsages() []*RecordPair { if x != nil { return x.CpuUsages } return nil } func (x *StoreStats) GetReadIoRates() []*RecordPair { if x != nil { return x.ReadIoRates } return nil } func (x *StoreStats) GetWriteIoRates() []*RecordPair { if x != nil { return x.WriteIoRates } return nil } func (x *StoreStats) GetOpLatencies() []*RecordPair { if x != nil { return x.OpLatencies } return nil } func (x *StoreStats) GetQueryStats() *QueryStats { if x != nil { return x.QueryStats } return nil } func (x *StoreStats) GetGraphStats() []*GraphStats { if x != nil { return x.GraphStats } return nil } func (x *StoreStats) GetRaftStats() []*RaftStats { if x != nil { return x.RaftStats } return nil } func (x *StoreStats) GetCores() int32 { if x != nil { return x.Cores } return 0 } func (x *StoreStats) GetSystemMetrics() []*RecordPair { if x != nil { return x.SystemMetrics } return nil } // 分区查询条件 type PartitionQuery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StoreId *uint64 `protobuf:"varint,1,opt,name=store_id,json=storeId,proto3,oneof" json:"store_id,omitempty"` // 0 表示查询条件不包含store_id GraphName *string `protobuf:"bytes,2,opt,name=graph_name,json=graphName,proto3,oneof" json:"graph_name,omitempty"` PartitionId *uint32 `protobuf:"varint,4,opt,name=partition_id,json=partitionId,proto3,oneof" json:"partition_id,omitempty"` } func (x *PartitionQuery) Reset() { *x = PartitionQuery{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartitionQuery) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartitionQuery) ProtoMessage() {} func (x *PartitionQuery) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PartitionQuery.ProtoReflect.Descriptor instead. func (*PartitionQuery) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{19} } func (x *PartitionQuery) GetStoreId() uint64 { if x != nil && x.StoreId != nil { return *x.StoreId } return 0 } func (x *PartitionQuery) GetGraphName() string { if x != nil && x.GraphName != nil { return *x.GraphName } return "" } func (x *PartitionQuery) GetPartitionId() uint32 { if x != nil && x.PartitionId != nil { return *x.PartitionId } return 0 } //PD 节点信息 type Member struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` RaftUrl string `protobuf:"bytes,3,opt,name=raft_url,json=raftUrl,proto3" json:"raft_url,omitempty"` GrpcUrl string `protobuf:"bytes,4,opt,name=grpc_url,json=grpcUrl,proto3" json:"grpc_url,omitempty"` RestUrl string `protobuf:"bytes,5,opt,name=rest_url,json=restUrl,proto3" json:"rest_url,omitempty"` DataPath string `protobuf:"bytes,6,opt,name=data_path,json=dataPath,proto3" json:"data_path,omitempty"` State StoreState `protobuf:"varint,7,opt,name=state,proto3,enum=metapb.StoreState" json:"state,omitempty"` } func (x *Member) Reset() { *x = Member{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Member) String() string { return protoimpl.X.MessageStringOf(x) } func (*Member) ProtoMessage() {} func (x *Member) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 Member.ProtoReflect.Descriptor instead. func (*Member) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{20} } func (x *Member) GetClusterId() uint64 { if x != nil { return x.ClusterId } return 0 } func (x *Member) GetRaftUrl() string { if x != nil { return x.RaftUrl } return "" } func (x *Member) GetGrpcUrl() string { if x != nil { return x.GrpcUrl } return "" } func (x *Member) GetRestUrl() string { if x != nil { return x.RestUrl } return "" } func (x *Member) GetDataPath() string { if x != nil { return x.DataPath } return "" } func (x *Member) GetState() StoreState { if x != nil { return x.State } return StoreState_Unknown } // 图空间配置 type GraphSpace struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 最大占用存储 StorageLimit uint64 `protobuf:"varint,2,opt,name=storage_limit,json=storageLimit,proto3" json:"storage_limit,omitempty"` // 已使用空间 UsedSize uint64 `protobuf:"varint,3,opt,name=used_size,json=usedSize,proto3" json:"used_size,omitempty"` // 修改时间 Timestamp uint64 `protobuf:"varint,10,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *GraphSpace) Reset() { *x = GraphSpace{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GraphSpace) String() string { return protoimpl.X.MessageStringOf(x) } func (*GraphSpace) ProtoMessage() {} func (x *GraphSpace) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 GraphSpace.ProtoReflect.Descriptor instead. func (*GraphSpace) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{21} } func (x *GraphSpace) GetName() string { if x != nil { return x.Name } return "" } func (x *GraphSpace) GetStorageLimit() uint64 { if x != nil { return x.StorageLimit } return 0 } func (x *GraphSpace) GetUsedSize() uint64 { if x != nil { return x.UsedSize } return 0 } func (x *GraphSpace) GetTimestamp() uint64 { if x != nil { return x.Timestamp } return 0 } // PD 配置 type PDConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // 分区数量, 初始化根据Store数量动态计算,分裂后进行修改 PartitionCount int32 `protobuf:"varint,2,opt,name=partition_count,json=partitionCount,proto3" json:"partition_count,omitempty"` // 每分区副本数量 ShardCount int32 `protobuf:"varint,3,opt,name=shard_count,json=shardCount,proto3" json:"shard_count,omitempty"` // pd集群列表 PeersList string `protobuf:"bytes,4,opt,name=peers_list,json=peersList,proto3" json:"peers_list,omitempty"` // 集群中最少store数量 MinStoreCount int32 `protobuf:"varint,6,opt,name=min_store_count,json=minStoreCount,proto3" json:"min_store_count,omitempty"` // 每个store最大副本数 Max_Shards_Per_Store int32 `protobuf:"varint,7,opt,name=max_Shards_Per_Store,json=maxShardsPerStore,proto3" json:"max_Shards_Per_Store,omitempty"` // 修改时间 Timestamp uint64 `protobuf:"varint,10,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *PDConfig) Reset() { *x = PDConfig{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PDConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PDConfig) ProtoMessage() {} func (x *PDConfig) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 PDConfig.ProtoReflect.Descriptor instead. func (*PDConfig) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{22} } func (x *PDConfig) GetVersion() uint64 { if x != nil { return x.Version } return 0 } func (x *PDConfig) GetPartitionCount() int32 { if x != nil { return x.PartitionCount } return 0 } func (x *PDConfig) GetShardCount() int32 { if x != nil { return x.ShardCount } return 0 } func (x *PDConfig) GetPeersList() string { if x != nil { return x.PeersList } return "" } func (x *PDConfig) GetMinStoreCount() int32 { if x != nil { return x.MinStoreCount } return 0 } func (x *PDConfig) GetMax_Shards_Per_Store() int32 { if x != nil { return x.Max_Shards_Per_Store } return 0 } func (x *PDConfig) GetTimestamp() uint64 { if x != nil { return x.Timestamp } return 0 } //消息持久化 type QueueItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId string `protobuf:"bytes,1,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"` ItemClass string `protobuf:"bytes,2,opt,name=item_class,json=itemClass,proto3" json:"item_class,omitempty"` ItemContent []byte `protobuf:"bytes,3,opt,name=item_content,json=itemContent,proto3" json:"item_content,omitempty"` Timestamp int64 `protobuf:"varint,10,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *QueueItem) Reset() { *x = QueueItem{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueueItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueueItem) ProtoMessage() {} func (x *QueueItem) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 QueueItem.ProtoReflect.Descriptor instead. func (*QueueItem) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{23} } func (x *QueueItem) GetItemId() string { if x != nil { return x.ItemId } return "" } func (x *QueueItem) GetItemClass() string { if x != nil { return x.ItemClass } return "" } func (x *QueueItem) GetItemContent() []byte { if x != nil { return x.ItemContent } return nil } func (x *QueueItem) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } type LogRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Object *anypb.Any `protobuf:"bytes,4,opt,name=object,proto3" json:"object,omitempty"` Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` } func (x *LogRecord) Reset() { *x = LogRecord{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LogRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*LogRecord) ProtoMessage() {} func (x *LogRecord) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 LogRecord.ProtoReflect.Descriptor instead. func (*LogRecord) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{24} } func (x *LogRecord) GetAction() string { if x != nil { return x.Action } return "" } func (x *LogRecord) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *LogRecord) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } func (x *LogRecord) GetObject() *anypb.Any { if x != nil { return x.Object } return nil } func (x *LogRecord) GetMessage() string { if x != nil { return x.Message } return "" } type GraphState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Mode GraphMode `protobuf:"varint,1,opt,name=mode,proto3,enum=metapb.GraphMode" json:"mode,omitempty"` Reason GraphModeReason `protobuf:"varint,2,opt,name=reason,proto3,enum=metapb.GraphModeReason" json:"reason,omitempty"` } func (x *GraphState) Reset() { *x = GraphState{} if protoimpl.UnsafeEnabled { mi := &file_metapb_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GraphState) String() string { return protoimpl.X.MessageStringOf(x) } func (*GraphState) ProtoMessage() {} func (x *GraphState) ProtoReflect() protoreflect.Message { mi := &file_metapb_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 GraphState.ProtoReflect.Descriptor instead. func (*GraphState) Descriptor() ([]byte, []int) { return file_metapb_proto_rawDescGZIP(), []int{25} } func (x *GraphState) GetMode() GraphMode { if x != nil { return x.Mode } return GraphMode_ReadWrite } func (x *GraphState) GetReason() GraphModeReason { if x != nil { return x.Reason } return GraphModeReason_Empty } var File_metapb_proto protoreflect.FileDescriptor var file_metapb_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x72, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x03, 0x0a, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 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, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x61, 0x66, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x74, 0x68, 0x22, 0x49, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x72, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x56, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x33, 0x36, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x56, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0x79, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x66, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x61, 0x66, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc6, 0x03, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x56, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x82, 0x02, 0x0a, 0x0a, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x57, 0x0a, 0x09, 0x52, 0x61, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x5c, 0x0a, 0x0c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x47, 0x43, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x47, 0x43, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x63, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x43, 0x6f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x50, 0x75, 0x74, 0x22, 0xee, 0x07, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x62, 0x75, 0x73, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x42, 0x75, 0x73, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6b, 0x65, 0x79, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x52, 0x09, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6f, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x49, 0x6f, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x6f, 0x70, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x6f, 0x70, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x72, 0x61, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x66, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x70, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0a, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x84, 0x02, 0x0a, 0x08, 0x50, 0x44, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x50, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x84, 0x01, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xfb, 0x01, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x64, 0x0a, 0x0a, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2a, 0x78, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x57, 0x61, 0x72, 0x6e, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x0b, 0x12, 0x1e, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x4e, 0x6f, 0x74, 0x5f, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x2a, 0x57, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x78, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x10, 0x03, 0x2a, 0x3c, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x10, 0x03, 0x2a, 0x6b, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x57, 0x61, 0x72, 0x6e, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x0b, 0x2a, 0x59, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0x0a, 0x2a, 0x37, 0x0a, 0x09, 0x47, 0x72, 0x61, 0x70, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x02, 0x2a, 0x37, 0x0a, 0x0f, 0x47, 0x72, 0x61, 0x70, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x10, 0x02, 0x42, 0x38, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x61, 0x69, 0x64, 0x75, 0x2e, 0x68, 0x75, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x70, 0x64, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x5a, 0x19, 0x2f, 0x68, 0x75, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2d, 0x70, 0x64, 0x2d, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_metapb_proto_rawDescOnce sync.Once file_metapb_proto_rawDescData = file_metapb_proto_rawDesc ) func file_metapb_proto_rawDescGZIP() []byte { file_metapb_proto_rawDescOnce.Do(func() { file_metapb_proto_rawDescData = protoimpl.X.CompressGZIP(file_metapb_proto_rawDescData) }) return file_metapb_proto_rawDescData } var file_metapb_proto_enumTypes = make([]protoimpl.EnumInfo, 7) var file_metapb_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_metapb_proto_goTypes = []interface{}{ (ClusterState)(0), // 0: metapb.ClusterState (StoreState)(0), // 1: metapb.StoreState (ShardRole)(0), // 2: metapb.ShardRole (PartitionState)(0), // 3: metapb.PartitionState (ShardState)(0), // 4: metapb.ShardState (GraphMode)(0), // 5: metapb.GraphMode (GraphModeReason)(0), // 6: metapb.GraphModeReason (*ClusterStats)(nil), // 7: metapb.ClusterStats (*StoreLabel)(nil), // 8: metapb.StoreLabel (*Store)(nil), // 9: metapb.Store (*Shard)(nil), // 10: metapb.Shard (*ShardGroup)(nil), // 11: metapb.ShardGroup (*Graph)(nil), // 12: metapb.Graph (*PartitionV36)(nil), // 13: metapb.PartitionV36 (*Partition)(nil), // 14: metapb.Partition (*PartitionShard)(nil), // 15: metapb.PartitionShard (*PartitionStore)(nil), // 16: metapb.PartitionStore (*PartitionRaft)(nil), // 17: metapb.PartitionRaft (*ShardStats)(nil), // 18: metapb.ShardStats (*PartitionStats)(nil), // 19: metapb.PartitionStats (*GraphStats)(nil), // 20: metapb.GraphStats (*RaftStats)(nil), // 21: metapb.RaftStats (*TimeInterval)(nil), // 22: metapb.TimeInterval (*RecordPair)(nil), // 23: metapb.RecordPair (*QueryStats)(nil), // 24: metapb.QueryStats (*StoreStats)(nil), // 25: metapb.StoreStats (*PartitionQuery)(nil), // 26: metapb.PartitionQuery (*Member)(nil), // 27: metapb.Member (*GraphSpace)(nil), // 28: metapb.GraphSpace (*PDConfig)(nil), // 29: metapb.PDConfig (*QueueItem)(nil), // 30: metapb.QueueItem (*LogRecord)(nil), // 31: metapb.LogRecord (*GraphState)(nil), // 32: metapb.GraphState nil, // 33: metapb.LogRecord.LabelsEntry (*anypb.Any)(nil), // 34: google.protobuf.Any } var file_metapb_proto_depIdxs = []int32{ 0, // 0: metapb.ClusterStats.state:type_name -> metapb.ClusterState 8, // 1: metapb.Store.labels:type_name -> metapb.StoreLabel 1, // 2: metapb.Store.state:type_name -> metapb.StoreState 25, // 3: metapb.Store.stats:type_name -> metapb.StoreStats 2, // 4: metapb.Shard.role:type_name -> metapb.ShardRole 10, // 5: metapb.ShardGroup.shards:type_name -> metapb.Shard 3, // 6: metapb.ShardGroup.state:type_name -> metapb.PartitionState 3, // 7: metapb.Graph.state:type_name -> metapb.PartitionState 32, // 8: metapb.Graph.graph_state:type_name -> metapb.GraphState 10, // 9: metapb.PartitionV36.shards:type_name -> metapb.Shard 3, // 10: metapb.PartitionV36.state:type_name -> metapb.PartitionState 3, // 11: metapb.Partition.state:type_name -> metapb.PartitionState 14, // 12: metapb.PartitionShard.partition:type_name -> metapb.Partition 10, // 13: metapb.PartitionShard.leader:type_name -> metapb.Shard 10, // 14: metapb.PartitionShard.offline_shards:type_name -> metapb.Shard 2, // 15: metapb.ShardStats.role:type_name -> metapb.ShardRole 4, // 16: metapb.ShardStats.state:type_name -> metapb.ShardState 10, // 17: metapb.PartitionStats.leader:type_name -> metapb.Shard 10, // 18: metapb.PartitionStats.shard:type_name -> metapb.Shard 10, // 19: metapb.PartitionStats.learner:type_name -> metapb.Shard 3, // 20: metapb.PartitionStats.state:type_name -> metapb.PartitionState 18, // 21: metapb.PartitionStats.shardStats:type_name -> metapb.ShardStats 2, // 22: metapb.GraphStats.role:type_name -> metapb.ShardRole 3, // 23: metapb.GraphStats.work_state:type_name -> metapb.PartitionState 22, // 24: metapb.StoreStats.interval:type_name -> metapb.TimeInterval 23, // 25: metapb.StoreStats.cpu_usages:type_name -> metapb.RecordPair 23, // 26: metapb.StoreStats.read_io_rates:type_name -> metapb.RecordPair 23, // 27: metapb.StoreStats.write_io_rates:type_name -> metapb.RecordPair 23, // 28: metapb.StoreStats.op_latencies:type_name -> metapb.RecordPair 24, // 29: metapb.StoreStats.query_stats:type_name -> metapb.QueryStats 20, // 30: metapb.StoreStats.graph_stats:type_name -> metapb.GraphStats 21, // 31: metapb.StoreStats.raft_stats:type_name -> metapb.RaftStats 23, // 32: metapb.StoreStats.system_metrics:type_name -> metapb.RecordPair 1, // 33: metapb.Member.state:type_name -> metapb.StoreState 33, // 34: metapb.LogRecord.labels:type_name -> metapb.LogRecord.LabelsEntry 34, // 35: metapb.LogRecord.object:type_name -> google.protobuf.Any 5, // 36: metapb.GraphState.mode:type_name -> metapb.GraphMode 6, // 37: metapb.GraphState.reason:type_name -> metapb.GraphModeReason 38, // [38:38] is the sub-list for method output_type 38, // [38:38] is the sub-list for method input_type 38, // [38:38] is the sub-list for extension type_name 38, // [38:38] is the sub-list for extension extendee 0, // [0:38] is the sub-list for field type_name } func init() { file_metapb_proto_init() } func file_metapb_proto_init() { if File_metapb_proto != nil { return } if !protoimpl.UnsafeEnabled { file_metapb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StoreLabel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Store); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Shard); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Graph); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartitionV36); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Partition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartitionShard); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartitionStore); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartitionRaft); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartitionStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GraphStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RaftStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimeInterval); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecordPair); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StoreStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PartitionQuery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Member); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GraphSpace); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PDConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueueItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogRecord); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_metapb_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GraphState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_metapb_proto_msgTypes[19].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_metapb_proto_rawDesc, NumEnums: 7, NumMessages: 27, NumExtensions: 0, NumServices: 0, }, GoTypes: file_metapb_proto_goTypes, DependencyIndexes: file_metapb_proto_depIdxs, EnumInfos: file_metapb_proto_enumTypes, MessageInfos: file_metapb_proto_msgTypes, }.Build() File_metapb_proto = out.File file_metapb_proto_rawDesc = nil file_metapb_proto_goTypes = nil file_metapb_proto_depIdxs = nil }