// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v3.19.4 // source: service_node.proto package pb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // 创建节点 type CreateNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 节点名称 NodeClusterId int64 `protobuf:"varint,2,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 节点所属集群 NodeLogin *NodeLogin `protobuf:"bytes,3,opt,name=nodeLogin,proto3" json:"nodeLogin,omitempty"` // 节点登录信息 NodeGroupId int64 `protobuf:"varint,4,opt,name=nodeGroupId,proto3" json:"nodeGroupId,omitempty"` // 节点所属分组 // Deprecated: Marked as deprecated in service_node.proto. DnsDomainId int64 `protobuf:"varint,5,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` // 节点域名ID,此参数已过期,请不要再使用 DnsRoutes []string `protobuf:"bytes,6,rep,name=dnsRoutes,proto3" json:"dnsRoutes,omitempty"` // 节点DNS线路列表 NodeRegionId int64 `protobuf:"varint,7,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` // 节点所属区域 } func (x *CreateNodeRequest) Reset() { *x = CreateNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateNodeRequest) ProtoMessage() {} func (x *CreateNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CreateNodeRequest.ProtoReflect.Descriptor instead. func (*CreateNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{0} } func (x *CreateNodeRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *CreateNodeRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CreateNodeRequest) GetNodeLogin() *NodeLogin { if x != nil { return x.NodeLogin } return nil } func (x *CreateNodeRequest) GetNodeGroupId() int64 { if x != nil { return x.NodeGroupId } return 0 } // Deprecated: Marked as deprecated in service_node.proto. func (x *CreateNodeRequest) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } func (x *CreateNodeRequest) GetDnsRoutes() []string { if x != nil { return x.DnsRoutes } return nil } func (x *CreateNodeRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } type CreateNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *CreateNodeResponse) Reset() { *x = CreateNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateNodeResponse) ProtoMessage() {} func (x *CreateNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CreateNodeResponse.ProtoReflect.Descriptor instead. func (*CreateNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{1} } func (x *CreateNodeResponse) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } // 注册集群节点 type RegisterClusterNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *RegisterClusterNodeRequest) Reset() { *x = RegisterClusterNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RegisterClusterNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RegisterClusterNodeRequest) ProtoMessage() {} func (x *RegisterClusterNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 RegisterClusterNodeRequest.ProtoReflect.Descriptor instead. func (*RegisterClusterNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{2} } func (x *RegisterClusterNodeRequest) GetName() string { if x != nil { return x.Name } return "" } type RegisterClusterNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UniqueId string `protobuf:"bytes,1,opt,name=uniqueId,proto3" json:"uniqueId,omitempty"` Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"` Endpoints []string `protobuf:"bytes,3,rep,name=endpoints,proto3" json:"endpoints,omitempty"` } func (x *RegisterClusterNodeResponse) Reset() { *x = RegisterClusterNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RegisterClusterNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*RegisterClusterNodeResponse) ProtoMessage() {} func (x *RegisterClusterNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 RegisterClusterNodeResponse.ProtoReflect.Descriptor instead. func (*RegisterClusterNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{3} } func (x *RegisterClusterNodeResponse) GetUniqueId() string { if x != nil { return x.UniqueId } return "" } func (x *RegisterClusterNodeResponse) GetSecret() string { if x != nil { return x.Secret } return "" } func (x *RegisterClusterNodeResponse) GetEndpoints() []string { if x != nil { return x.Endpoints } return nil } // 所有可用的节点数量 type CountAllEnabledNodesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CountAllEnabledNodesRequest) Reset() { *x = CountAllEnabledNodesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodesRequest) ProtoMessage() {} func (x *CountAllEnabledNodesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodesRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{4} } // 列出单页节点 type ListEnabledNodesMatchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` // 读取位置 Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` // 读取数量 NodeClusterId int64 `protobuf:"varint,3,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID InstallState int32 `protobuf:"varint,4,opt,name=installState,proto3" json:"installState,omitempty"` // 安装状态 ActiveState int32 `protobuf:"varint,5,opt,name=activeState,proto3" json:"activeState,omitempty"` // 在线状态 Keyword string `protobuf:"bytes,6,opt,name=keyword,proto3" json:"keyword,omitempty"` // 关键词 NodeGroupId int64 `protobuf:"varint,7,opt,name=nodeGroupId,proto3" json:"nodeGroupId,omitempty"` // 节点分组ID NodeRegionId int64 `protobuf:"varint,8,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` // 节点区域ID Level int32 `protobuf:"varint,9,opt,name=level,proto3" json:"level,omitempty"` // 节点级别,目前只有1(L1)和2(L2) CpuAsc bool `protobuf:"varint,20,opt,name=cpuAsc,proto3" json:"cpuAsc,omitempty"` CpuDesc bool `protobuf:"varint,21,opt,name=cpuDesc,proto3" json:"cpuDesc,omitempty"` MemoryAsc bool `protobuf:"varint,22,opt,name=memoryAsc,proto3" json:"memoryAsc,omitempty"` MemoryDesc bool `protobuf:"varint,23,opt,name=memoryDesc,proto3" json:"memoryDesc,omitempty"` TrafficInAsc bool `protobuf:"varint,24,opt,name=trafficInAsc,proto3" json:"trafficInAsc,omitempty"` TrafficInDesc bool `protobuf:"varint,25,opt,name=trafficInDesc,proto3" json:"trafficInDesc,omitempty"` TrafficOutAsc bool `protobuf:"varint,26,opt,name=trafficOutAsc,proto3" json:"trafficOutAsc,omitempty"` TrafficOutDesc bool `protobuf:"varint,27,opt,name=trafficOutDesc,proto3" json:"trafficOutDesc,omitempty"` LoadAsc bool `protobuf:"varint,28,opt,name=loadAsc,proto3" json:"loadAsc,omitempty"` LoadDesc bool `protobuf:"varint,29,opt,name=loadDesc,proto3" json:"loadDesc,omitempty"` ConnectionsAsc bool `protobuf:"varint,30,opt,name=connectionsAsc,proto3" json:"connectionsAsc,omitempty"` ConnectionsDesc bool `protobuf:"varint,31,opt,name=connectionsDesc,proto3" json:"connectionsDesc,omitempty"` } func (x *ListEnabledNodesMatchRequest) Reset() { *x = ListEnabledNodesMatchRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnabledNodesMatchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnabledNodesMatchRequest) ProtoMessage() {} func (x *ListEnabledNodesMatchRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 ListEnabledNodesMatchRequest.ProtoReflect.Descriptor instead. func (*ListEnabledNodesMatchRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{5} } func (x *ListEnabledNodesMatchRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *ListEnabledNodesMatchRequest) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *ListEnabledNodesMatchRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *ListEnabledNodesMatchRequest) GetInstallState() int32 { if x != nil { return x.InstallState } return 0 } func (x *ListEnabledNodesMatchRequest) GetActiveState() int32 { if x != nil { return x.ActiveState } return 0 } func (x *ListEnabledNodesMatchRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *ListEnabledNodesMatchRequest) GetNodeGroupId() int64 { if x != nil { return x.NodeGroupId } return 0 } func (x *ListEnabledNodesMatchRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } func (x *ListEnabledNodesMatchRequest) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ListEnabledNodesMatchRequest) GetCpuAsc() bool { if x != nil { return x.CpuAsc } return false } func (x *ListEnabledNodesMatchRequest) GetCpuDesc() bool { if x != nil { return x.CpuDesc } return false } func (x *ListEnabledNodesMatchRequest) GetMemoryAsc() bool { if x != nil { return x.MemoryAsc } return false } func (x *ListEnabledNodesMatchRequest) GetMemoryDesc() bool { if x != nil { return x.MemoryDesc } return false } func (x *ListEnabledNodesMatchRequest) GetTrafficInAsc() bool { if x != nil { return x.TrafficInAsc } return false } func (x *ListEnabledNodesMatchRequest) GetTrafficInDesc() bool { if x != nil { return x.TrafficInDesc } return false } func (x *ListEnabledNodesMatchRequest) GetTrafficOutAsc() bool { if x != nil { return x.TrafficOutAsc } return false } func (x *ListEnabledNodesMatchRequest) GetTrafficOutDesc() bool { if x != nil { return x.TrafficOutDesc } return false } func (x *ListEnabledNodesMatchRequest) GetLoadAsc() bool { if x != nil { return x.LoadAsc } return false } func (x *ListEnabledNodesMatchRequest) GetLoadDesc() bool { if x != nil { return x.LoadDesc } return false } func (x *ListEnabledNodesMatchRequest) GetConnectionsAsc() bool { if x != nil { return x.ConnectionsAsc } return false } func (x *ListEnabledNodesMatchRequest) GetConnectionsDesc() bool { if x != nil { return x.ConnectionsDesc } return false } type ListEnabledNodesMatchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *ListEnabledNodesMatchResponse) Reset() { *x = ListEnabledNodesMatchResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnabledNodesMatchResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnabledNodesMatchResponse) ProtoMessage() {} func (x *ListEnabledNodesMatchResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 ListEnabledNodesMatchResponse.ProtoReflect.Descriptor instead. func (*ListEnabledNodesMatchResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{6} } func (x *ListEnabledNodesMatchResponse) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } // 根据集群查找所有节点 type FindAllEnabledNodesWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID IncludeSecondary bool `protobuf:"varint,2,opt,name=includeSecondary,proto3" json:"includeSecondary,omitempty"` // 是否检查节点的从集群,如果为false,则只检查主集群ID } func (x *FindAllEnabledNodesWithNodeClusterIdRequest) Reset() { *x = FindAllEnabledNodesWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodesWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodesWithNodeClusterIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodesWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodesWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodesWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{7} } func (x *FindAllEnabledNodesWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindAllEnabledNodesWithNodeClusterIdRequest) GetIncludeSecondary() bool { if x != nil { return x.IncludeSecondary } return false } type FindAllEnabledNodesWithNodeClusterIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *FindAllEnabledNodesWithNodeClusterIdResponse) Reset() { *x = FindAllEnabledNodesWithNodeClusterIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodesWithNodeClusterIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodesWithNodeClusterIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodesWithNodeClusterIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodesWithNodeClusterIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodesWithNodeClusterIdResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{8} } func (x *FindAllEnabledNodesWithNodeClusterIdResponse) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } // 删除节点 type DeleteNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *DeleteNodeRequest) Reset() { *x = DeleteNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteNodeRequest) ProtoMessage() {} func (x *DeleteNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 DeleteNodeRequest.ProtoReflect.Descriptor instead. func (*DeleteNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{9} } func (x *DeleteNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } // 从集群中删除节点 type DeleteNodeFromNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` NodeClusterId int64 `protobuf:"varint,2,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *DeleteNodeFromNodeClusterRequest) Reset() { *x = DeleteNodeFromNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteNodeFromNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteNodeFromNodeClusterRequest) ProtoMessage() {} func (x *DeleteNodeFromNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 DeleteNodeFromNodeClusterRequest.ProtoReflect.Descriptor instead. func (*DeleteNodeFromNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{10} } func (x *DeleteNodeFromNodeClusterRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *DeleteNodeFromNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } // 修改节点 type UpdateNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` NodeClusterId int64 `protobuf:"varint,3,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` SecondaryNodeClusterIds []int64 `protobuf:"varint,13,rep,packed,name=secondaryNodeClusterIds,proto3" json:"secondaryNodeClusterIds,omitempty"` IsOn bool `protobuf:"varint,6,opt,name=isOn,proto3" json:"isOn,omitempty"` NodeGroupId int64 `protobuf:"varint,7,opt,name=nodeGroupId,proto3" json:"nodeGroupId,omitempty"` NodeRegionId int64 `protobuf:"varint,10,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` Level int32 `protobuf:"varint,14,opt,name=level,proto3" json:"level,omitempty"` LnAddrs []string `protobuf:"bytes,15,rep,name=lnAddrs,proto3" json:"lnAddrs,omitempty"` // Ln节点访问地址 EnableIPLists bool `protobuf:"varint,16,opt,name=enableIPLists,proto3" json:"enableIPLists,omitempty"` // 是否启用IP名单 } func (x *UpdateNodeRequest) Reset() { *x = UpdateNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeRequest) ProtoMessage() {} func (x *UpdateNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{11} } func (x *UpdateNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateNodeRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeRequest) GetSecondaryNodeClusterIds() []int64 { if x != nil { return x.SecondaryNodeClusterIds } return nil } func (x *UpdateNodeRequest) GetIsOn() bool { if x != nil { return x.IsOn } return false } func (x *UpdateNodeRequest) GetNodeGroupId() int64 { if x != nil { return x.NodeGroupId } return 0 } func (x *UpdateNodeRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } func (x *UpdateNodeRequest) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *UpdateNodeRequest) GetLnAddrs() []string { if x != nil { return x.LnAddrs } return nil } func (x *UpdateNodeRequest) GetEnableIPLists() bool { if x != nil { return x.EnableIPLists } return false } // 获取单个节点信息 type FindEnabledNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *FindEnabledNodeRequest) Reset() { *x = FindEnabledNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeRequest) ProtoMessage() {} func (x *FindEnabledNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{12} } func (x *FindEnabledNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindEnabledNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` // 节点信息 } func (x *FindEnabledNodeResponse) Reset() { *x = FindEnabledNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeResponse) ProtoMessage() {} func (x *FindEnabledNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{13} } func (x *FindEnabledNodeResponse) GetNode() *Node { if x != nil { return x.Node } return nil } // 获取单个节点基本信息 type FindEnabledBasicNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *FindEnabledBasicNodeRequest) Reset() { *x = FindEnabledBasicNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledBasicNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledBasicNodeRequest) ProtoMessage() {} func (x *FindEnabledBasicNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledBasicNodeRequest.ProtoReflect.Descriptor instead. func (*FindEnabledBasicNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{14} } func (x *FindEnabledBasicNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindEnabledBasicNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Node *BasicNode `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` // 节点基本信息 } func (x *FindEnabledBasicNodeResponse) Reset() { *x = FindEnabledBasicNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledBasicNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledBasicNodeResponse) ProtoMessage() {} func (x *FindEnabledBasicNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledBasicNodeResponse.ProtoReflect.Descriptor instead. func (*FindEnabledBasicNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{15} } func (x *FindEnabledBasicNodeResponse) GetNode() *BasicNode { if x != nil { return x.Node } return nil } // 组合单个节点配置 type FindCurrentNodeConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 由于登录信息中已经包含了节点信息,所以这里不需要nodeId Version int64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Compress bool `protobuf:"varint,2,opt,name=compress,proto3" json:"compress,omitempty"` // 是否压缩 NodeTaskVersion int64 `protobuf:"varint,3,opt,name=nodeTaskVersion,proto3" json:"nodeTaskVersion,omitempty"` // 通知任务版本 UseDataMap bool `protobuf:"varint,4,opt,name=useDataMap,proto3" json:"useDataMap,omitempty"` // 是否使用公共的数据集 } func (x *FindCurrentNodeConfigRequest) Reset() { *x = FindCurrentNodeConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindCurrentNodeConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindCurrentNodeConfigRequest) ProtoMessage() {} func (x *FindCurrentNodeConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindCurrentNodeConfigRequest.ProtoReflect.Descriptor instead. func (*FindCurrentNodeConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{16} } func (x *FindCurrentNodeConfigRequest) GetVersion() int64 { if x != nil { return x.Version } return 0 } func (x *FindCurrentNodeConfigRequest) GetCompress() bool { if x != nil { return x.Compress } return false } func (x *FindCurrentNodeConfigRequest) GetNodeTaskVersion() int64 { if x != nil { return x.NodeTaskVersion } return 0 } func (x *FindCurrentNodeConfigRequest) GetUseDataMap() bool { if x != nil { return x.UseDataMap } return false } type FindCurrentNodeConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeJSON []byte `protobuf:"bytes,1,opt,name=nodeJSON,proto3" json:"nodeJSON,omitempty"` IsChanged bool `protobuf:"varint,2,opt,name=isChanged,proto3" json:"isChanged,omitempty"` IsCompressed bool `protobuf:"varint,3,opt,name=isCompressed,proto3" json:"isCompressed,omitempty"` DataSize int64 `protobuf:"varint,4,opt,name=dataSize,proto3" json:"dataSize,omitempty"` Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *FindCurrentNodeConfigResponse) Reset() { *x = FindCurrentNodeConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindCurrentNodeConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindCurrentNodeConfigResponse) ProtoMessage() {} func (x *FindCurrentNodeConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindCurrentNodeConfigResponse.ProtoReflect.Descriptor instead. func (*FindCurrentNodeConfigResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{17} } func (x *FindCurrentNodeConfigResponse) GetNodeJSON() []byte { if x != nil { return x.NodeJSON } return nil } func (x *FindCurrentNodeConfigResponse) GetIsChanged() bool { if x != nil { return x.IsChanged } return false } func (x *FindCurrentNodeConfigResponse) GetIsCompressed() bool { if x != nil { return x.IsCompressed } return false } func (x *FindCurrentNodeConfigResponse) GetDataSize() int64 { if x != nil { return x.DataSize } return 0 } func (x *FindCurrentNodeConfigResponse) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } // 节点stream type NodeStreamMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` RequestId int64 `protobuf:"varint,2,opt,name=requestId,proto3" json:"requestId,omitempty"` TimeoutSeconds int32 `protobuf:"varint,3,opt,name=timeoutSeconds,proto3" json:"timeoutSeconds,omitempty"` Code string `protobuf:"bytes,4,opt,name=code,proto3" json:"code,omitempty"` DataJSON []byte `protobuf:"bytes,5,opt,name=dataJSON,proto3" json:"dataJSON,omitempty"` IsOk bool `protobuf:"varint,6,opt,name=isOk,proto3" json:"isOk,omitempty"` Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` } func (x *NodeStreamMessage) Reset() { *x = NodeStreamMessage{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeStreamMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeStreamMessage) ProtoMessage() {} func (x *NodeStreamMessage) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 NodeStreamMessage.ProtoReflect.Descriptor instead. func (*NodeStreamMessage) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{18} } func (x *NodeStreamMessage) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *NodeStreamMessage) GetRequestId() int64 { if x != nil { return x.RequestId } return 0 } func (x *NodeStreamMessage) GetTimeoutSeconds() int32 { if x != nil { return x.TimeoutSeconds } return 0 } func (x *NodeStreamMessage) GetCode() string { if x != nil { return x.Code } return "" } func (x *NodeStreamMessage) GetDataJSON() []byte { if x != nil { return x.DataJSON } return nil } func (x *NodeStreamMessage) GetIsOk() bool { if x != nil { return x.IsOk } return false } func (x *NodeStreamMessage) GetMessage() string { if x != nil { return x.Message } return "" } // 更新节点状态 type UpdateNodeStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` StatusJSON []byte `protobuf:"bytes,2,opt,name=statusJSON,proto3" json:"statusJSON,omitempty"` } func (x *UpdateNodeStatusRequest) Reset() { *x = UpdateNodeStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeStatusRequest) ProtoMessage() {} func (x *UpdateNodeStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeStatusRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeStatusRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{19} } func (x *UpdateNodeStatusRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeStatusRequest) GetStatusJSON() []byte { if x != nil { return x.StatusJSON } return nil } // 计算匹配的节点数量 type CountAllEnabledNodesMatchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` InstallState int32 `protobuf:"varint,2,opt,name=installState,proto3" json:"installState,omitempty"` ActiveState int32 `protobuf:"varint,3,opt,name=activeState,proto3" json:"activeState,omitempty"` Keyword string `protobuf:"bytes,4,opt,name=keyword,proto3" json:"keyword,omitempty"` NodeGroupId int64 `protobuf:"varint,5,opt,name=nodeGroupId,proto3" json:"nodeGroupId,omitempty"` NodeRegionId int64 `protobuf:"varint,6,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` Level int32 `protobuf:"varint,7,opt,name=level,proto3" json:"level,omitempty"` } func (x *CountAllEnabledNodesMatchRequest) Reset() { *x = CountAllEnabledNodesMatchRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodesMatchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodesMatchRequest) ProtoMessage() {} func (x *CountAllEnabledNodesMatchRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodesMatchRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodesMatchRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{20} } func (x *CountAllEnabledNodesMatchRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CountAllEnabledNodesMatchRequest) GetInstallState() int32 { if x != nil { return x.InstallState } return 0 } func (x *CountAllEnabledNodesMatchRequest) GetActiveState() int32 { if x != nil { return x.ActiveState } return 0 } func (x *CountAllEnabledNodesMatchRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *CountAllEnabledNodesMatchRequest) GetNodeGroupId() int64 { if x != nil { return x.NodeGroupId } return 0 } func (x *CountAllEnabledNodesMatchRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } func (x *CountAllEnabledNodesMatchRequest) GetLevel() int32 { if x != nil { return x.Level } return 0 } // 修改节点安装状态 type UpdateNodeIsInstalledRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` IsInstalled bool `protobuf:"varint,2,opt,name=isInstalled,proto3" json:"isInstalled,omitempty"` } func (x *UpdateNodeIsInstalledRequest) Reset() { *x = UpdateNodeIsInstalledRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeIsInstalledRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeIsInstalledRequest) ProtoMessage() {} func (x *UpdateNodeIsInstalledRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeIsInstalledRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeIsInstalledRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{21} } func (x *UpdateNodeIsInstalledRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeIsInstalledRequest) GetIsInstalled() bool { if x != nil { return x.IsInstalled } return false } // 安装节点 type InstallNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *InstallNodeRequest) Reset() { *x = InstallNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstallNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstallNodeRequest) ProtoMessage() {} func (x *InstallNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 InstallNodeRequest.ProtoReflect.Descriptor instead. func (*InstallNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{22} } func (x *InstallNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type InstallNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *InstallNodeResponse) Reset() { *x = InstallNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstallNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstallNodeResponse) ProtoMessage() {} func (x *InstallNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 InstallNodeResponse.ProtoReflect.Descriptor instead. func (*InstallNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{23} } // 升级节点 type UpgradeNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *UpgradeNodeRequest) Reset() { *x = UpgradeNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpgradeNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpgradeNodeRequest) ProtoMessage() {} func (x *UpgradeNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpgradeNodeRequest.ProtoReflect.Descriptor instead. func (*UpgradeNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{24} } func (x *UpgradeNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type UpgradeNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UpgradeNodeResponse) Reset() { *x = UpgradeNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpgradeNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpgradeNodeResponse) ProtoMessage() {} func (x *UpgradeNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpgradeNodeResponse.ProtoReflect.Descriptor instead. func (*UpgradeNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{25} } // 启动节点 type StartNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *StartNodeRequest) Reset() { *x = StartNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartNodeRequest) ProtoMessage() {} func (x *StartNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartNodeRequest.ProtoReflect.Descriptor instead. func (*StartNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{26} } func (x *StartNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type StartNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsOk bool `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` } func (x *StartNodeResponse) Reset() { *x = StartNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartNodeResponse) ProtoMessage() {} func (x *StartNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartNodeResponse.ProtoReflect.Descriptor instead. func (*StartNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{27} } func (x *StartNodeResponse) GetIsOk() bool { if x != nil { return x.IsOk } return false } func (x *StartNodeResponse) GetError() string { if x != nil { return x.Error } return "" } // 停止节点 type StopNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *StopNodeRequest) Reset() { *x = StopNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopNodeRequest) ProtoMessage() {} func (x *StopNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopNodeRequest.ProtoReflect.Descriptor instead. func (*StopNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{28} } func (x *StopNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type StopNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsOk bool `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"` // 是否成功 Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // 失败时的错误信息 } func (x *StopNodeResponse) Reset() { *x = StopNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopNodeResponse) ProtoMessage() {} func (x *StopNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopNodeResponse.ProtoReflect.Descriptor instead. func (*StopNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{29} } func (x *StopNodeResponse) GetIsOk() bool { if x != nil { return x.IsOk } return false } func (x *StopNodeResponse) GetError() string { if x != nil { return x.Error } return "" } // 卸载节点 type UninstallNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *UninstallNodeRequest) Reset() { *x = UninstallNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UninstallNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UninstallNodeRequest) ProtoMessage() {} func (x *UninstallNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UninstallNodeRequest.ProtoReflect.Descriptor instead. func (*UninstallNodeRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{30} } func (x *UninstallNodeRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type UninstallNodeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsOk bool `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"` // 是否成功 Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // 失败时的错误信息 } func (x *UninstallNodeResponse) Reset() { *x = UninstallNodeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UninstallNodeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UninstallNodeResponse) ProtoMessage() {} func (x *UninstallNodeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UninstallNodeResponse.ProtoReflect.Descriptor instead. func (*UninstallNodeResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{31} } func (x *UninstallNodeResponse) GetIsOk() bool { if x != nil { return x.IsOk } return false } func (x *UninstallNodeResponse) GetError() string { if x != nil { return x.Error } return "" } // 更改节点连接的API节点信息 type UpdateNodeConnectedAPINodesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiNodeIds []int64 `protobuf:"varint,1,rep,packed,name=apiNodeIds,proto3" json:"apiNodeIds,omitempty"` } func (x *UpdateNodeConnectedAPINodesRequest) Reset() { *x = UpdateNodeConnectedAPINodesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeConnectedAPINodesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeConnectedAPINodesRequest) ProtoMessage() {} func (x *UpdateNodeConnectedAPINodesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeConnectedAPINodesRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeConnectedAPINodesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{32} } func (x *UpdateNodeConnectedAPINodesRequest) GetApiNodeIds() []int64 { if x != nil { return x.ApiNodeIds } return nil } // 计算使用某个认证的节点数量 type CountAllEnabledNodesWithNodeGrantIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeGrantId int64 `protobuf:"varint,1,opt,name=nodeGrantId,proto3" json:"nodeGrantId,omitempty"` } func (x *CountAllEnabledNodesWithNodeGrantIdRequest) Reset() { *x = CountAllEnabledNodesWithNodeGrantIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodesWithNodeGrantIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodesWithNodeGrantIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodesWithNodeGrantIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CountAllEnabledNodesWithNodeGrantIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodesWithNodeGrantIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{33} } func (x *CountAllEnabledNodesWithNodeGrantIdRequest) GetNodeGrantId() int64 { if x != nil { return x.NodeGrantId } return 0 } // 查找使用某个认证的所有节点 type FindAllEnabledNodesWithNodeGrantIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeGrantId int64 `protobuf:"varint,1,opt,name=nodeGrantId,proto3" json:"nodeGrantId,omitempty"` } func (x *FindAllEnabledNodesWithNodeGrantIdRequest) Reset() { *x = FindAllEnabledNodesWithNodeGrantIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodesWithNodeGrantIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodesWithNodeGrantIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodesWithNodeGrantIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllEnabledNodesWithNodeGrantIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodesWithNodeGrantIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{34} } func (x *FindAllEnabledNodesWithNodeGrantIdRequest) GetNodeGrantId() int64 { if x != nil { return x.NodeGrantId } return 0 } type FindAllEnabledNodesWithNodeGrantIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *FindAllEnabledNodesWithNodeGrantIdResponse) Reset() { *x = FindAllEnabledNodesWithNodeGrantIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodesWithNodeGrantIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodesWithNodeGrantIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodesWithNodeGrantIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllEnabledNodesWithNodeGrantIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodesWithNodeGrantIdResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{35} } func (x *FindAllEnabledNodesWithNodeGrantIdResponse) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } // 列出所有未安装的节点 type FindAllNotInstalledNodesWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindAllNotInstalledNodesWithNodeClusterIdRequest) Reset() { *x = FindAllNotInstalledNodesWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllNotInstalledNodesWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllNotInstalledNodesWithNodeClusterIdRequest) ProtoMessage() {} func (x *FindAllNotInstalledNodesWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllNotInstalledNodesWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*FindAllNotInstalledNodesWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{36} } func (x *FindAllNotInstalledNodesWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindAllNotInstalledNodesWithNodeClusterIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *FindAllNotInstalledNodesWithNodeClusterIdResponse) Reset() { *x = FindAllNotInstalledNodesWithNodeClusterIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllNotInstalledNodesWithNodeClusterIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllNotInstalledNodesWithNodeClusterIdResponse) ProtoMessage() {} func (x *FindAllNotInstalledNodesWithNodeClusterIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllNotInstalledNodesWithNodeClusterIdResponse.ProtoReflect.Descriptor instead. func (*FindAllNotInstalledNodesWithNodeClusterIdResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{37} } func (x *FindAllNotInstalledNodesWithNodeClusterIdResponse) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } // 计算未安装的节点数量 type CountAllNotInstalledNodesWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *CountAllNotInstalledNodesWithNodeClusterIdRequest) Reset() { *x = CountAllNotInstalledNodesWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllNotInstalledNodesWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllNotInstalledNodesWithNodeClusterIdRequest) ProtoMessage() {} func (x *CountAllNotInstalledNodesWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CountAllNotInstalledNodesWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*CountAllNotInstalledNodesWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{38} } func (x *CountAllNotInstalledNodesWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } // 计算需要升级的节点数量 type CountAllUpgradeNodesWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *CountAllUpgradeNodesWithNodeClusterIdRequest) Reset() { *x = CountAllUpgradeNodesWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllUpgradeNodesWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllUpgradeNodesWithNodeClusterIdRequest) ProtoMessage() {} func (x *CountAllUpgradeNodesWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CountAllUpgradeNodesWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*CountAllUpgradeNodesWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{39} } func (x *CountAllUpgradeNodesWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } // 列出所有需要升级的节点 type FindAllUpgradeNodesWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindAllUpgradeNodesWithNodeClusterIdRequest) Reset() { *x = FindAllUpgradeNodesWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllUpgradeNodesWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllUpgradeNodesWithNodeClusterIdRequest) ProtoMessage() {} func (x *FindAllUpgradeNodesWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllUpgradeNodesWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*FindAllUpgradeNodesWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{40} } func (x *FindAllUpgradeNodesWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindAllUpgradeNodesWithNodeClusterIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse) Reset() { *x = FindAllUpgradeNodesWithNodeClusterIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllUpgradeNodesWithNodeClusterIdResponse) ProtoMessage() {} func (x *FindAllUpgradeNodesWithNodeClusterIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllUpgradeNodesWithNodeClusterIdResponse.ProtoReflect.Descriptor instead. func (*FindAllUpgradeNodesWithNodeClusterIdResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{41} } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse) GetNodes() []*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade { if x != nil { return x.Nodes } return nil } // 读取节点安装状态 type FindNodeInstallStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *FindNodeInstallStatusRequest) Reset() { *x = FindNodeInstallStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeInstallStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeInstallStatusRequest) ProtoMessage() {} func (x *FindNodeInstallStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeInstallStatusRequest.ProtoReflect.Descriptor instead. func (*FindNodeInstallStatusRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{42} } func (x *FindNodeInstallStatusRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindNodeInstallStatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InstallStatus *NodeInstallStatus `protobuf:"bytes,1,opt,name=installStatus,proto3" json:"installStatus,omitempty"` } func (x *FindNodeInstallStatusResponse) Reset() { *x = FindNodeInstallStatusResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeInstallStatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeInstallStatusResponse) ProtoMessage() {} func (x *FindNodeInstallStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeInstallStatusResponse.ProtoReflect.Descriptor instead. func (*FindNodeInstallStatusResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{43} } func (x *FindNodeInstallStatusResponse) GetInstallStatus() *NodeInstallStatus { if x != nil { return x.InstallStatus } return nil } // 修改节点登录信息 type UpdateNodeLoginRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` NodeLogin *NodeLogin `protobuf:"bytes,2,opt,name=nodeLogin,proto3" json:"nodeLogin,omitempty"` } func (x *UpdateNodeLoginRequest) Reset() { *x = UpdateNodeLoginRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeLoginRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeLoginRequest) ProtoMessage() {} func (x *UpdateNodeLoginRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeLoginRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeLoginRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{44} } func (x *UpdateNodeLoginRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeLoginRequest) GetNodeLogin() *NodeLogin { if x != nil { return x.NodeLogin } return nil } // 计算某个节点分组内的节点数量 type CountAllEnabledNodesWithNodeGroupIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeGroupId int64 `protobuf:"varint,1,opt,name=nodeGroupId,proto3" json:"nodeGroupId,omitempty"` } func (x *CountAllEnabledNodesWithNodeGroupIdRequest) Reset() { *x = CountAllEnabledNodesWithNodeGroupIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodesWithNodeGroupIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodesWithNodeGroupIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodesWithNodeGroupIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CountAllEnabledNodesWithNodeGroupIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodesWithNodeGroupIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{45} } func (x *CountAllEnabledNodesWithNodeGroupIdRequest) GetNodeGroupId() int64 { if x != nil { return x.NodeGroupId } return 0 } // 取得某个集群下的所有节点DNS信息 type FindAllEnabledNodesDNSWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` IsInstalled bool `protobuf:"varint,2,opt,name=isInstalled,proto3" json:"isInstalled,omitempty"` } func (x *FindAllEnabledNodesDNSWithNodeClusterIdRequest) Reset() { *x = FindAllEnabledNodesDNSWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodesDNSWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodesDNSWithNodeClusterIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodesDNSWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllEnabledNodesDNSWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodesDNSWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{46} } func (x *FindAllEnabledNodesDNSWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindAllEnabledNodesDNSWithNodeClusterIdRequest) GetIsInstalled() bool { if x != nil { return x.IsInstalled } return false } type FindAllEnabledNodesDNSWithNodeClusterIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*NodeDNSInfo `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *FindAllEnabledNodesDNSWithNodeClusterIdResponse) Reset() { *x = FindAllEnabledNodesDNSWithNodeClusterIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodesDNSWithNodeClusterIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodesDNSWithNodeClusterIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodesDNSWithNodeClusterIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindAllEnabledNodesDNSWithNodeClusterIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodesDNSWithNodeClusterIdResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{47} } func (x *FindAllEnabledNodesDNSWithNodeClusterIdResponse) GetNodes() []*NodeDNSInfo { if x != nil { return x.Nodes } return nil } type NodeDNSInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` IpAddr string `protobuf:"bytes,3,opt,name=ipAddr,proto3" json:"ipAddr,omitempty"` NodeIPAddressId int64 `protobuf:"varint,9,opt,name=nodeIPAddressId,proto3" json:"nodeIPAddressId,omitempty"` Routes []*DNSRoute `protobuf:"bytes,4,rep,name=routes,proto3" json:"routes,omitempty"` NodeClusterId int64 `protobuf:"varint,5,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` DnsDomainId int64 `protobuf:"varint,6,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` DnsDomainName string `protobuf:"bytes,7,opt,name=dnsDomainName,proto3" json:"dnsDomainName,omitempty"` NodeClusterDNSName string `protobuf:"bytes,8,opt,name=nodeClusterDNSName,proto3" json:"nodeClusterDNSName,omitempty"` IsBackupForCluster bool `protobuf:"varint,10,opt,name=isBackupForCluster,proto3" json:"isBackupForCluster,omitempty"` // 是否为集群备份节点 IsBackupForGroup bool `protobuf:"varint,11,opt,name=isBackupForGroup,proto3" json:"isBackupForGroup,omitempty"` // 是否为分组备份节点 IsOffline bool `protobuf:"varint,12,opt,name=isOffline,proto3" json:"isOffline,omitempty"` // 是否下线 } func (x *NodeDNSInfo) Reset() { *x = NodeDNSInfo{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeDNSInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeDNSInfo) ProtoMessage() {} func (x *NodeDNSInfo) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeDNSInfo.ProtoReflect.Descriptor instead. func (*NodeDNSInfo) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{48} } func (x *NodeDNSInfo) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *NodeDNSInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *NodeDNSInfo) GetIpAddr() string { if x != nil { return x.IpAddr } return "" } func (x *NodeDNSInfo) GetNodeIPAddressId() int64 { if x != nil { return x.NodeIPAddressId } return 0 } func (x *NodeDNSInfo) GetRoutes() []*DNSRoute { if x != nil { return x.Routes } return nil } func (x *NodeDNSInfo) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *NodeDNSInfo) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } func (x *NodeDNSInfo) GetDnsDomainName() string { if x != nil { return x.DnsDomainName } return "" } func (x *NodeDNSInfo) GetNodeClusterDNSName() string { if x != nil { return x.NodeClusterDNSName } return "" } func (x *NodeDNSInfo) GetIsBackupForCluster() bool { if x != nil { return x.IsBackupForCluster } return false } func (x *NodeDNSInfo) GetIsBackupForGroup() bool { if x != nil { return x.IsBackupForGroup } return false } func (x *NodeDNSInfo) GetIsOffline() bool { if x != nil { return x.IsOffline } return false } // 查找单个节点的域名解析信息 type FindEnabledNodeDNSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` NodeClusterId int64 `protobuf:"varint,2,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` NodeIPAddrId int64 `protobuf:"varint,3,opt,name=nodeIPAddrId,proto3" json:"nodeIPAddrId,omitempty"` } func (x *FindEnabledNodeDNSRequest) Reset() { *x = FindEnabledNodeDNSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeDNSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeDNSRequest) ProtoMessage() {} func (x *FindEnabledNodeDNSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeDNSRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeDNSRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{49} } func (x *FindEnabledNodeDNSRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *FindEnabledNodeDNSRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindEnabledNodeDNSRequest) GetNodeIPAddrId() int64 { if x != nil { return x.NodeIPAddrId } return 0 } type FindEnabledNodeDNSResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Node *NodeDNSInfo `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` } func (x *FindEnabledNodeDNSResponse) Reset() { *x = FindEnabledNodeDNSResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeDNSResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeDNSResponse) ProtoMessage() {} func (x *FindEnabledNodeDNSResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeDNSResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeDNSResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{50} } func (x *FindEnabledNodeDNSResponse) GetNode() *NodeDNSInfo { if x != nil { return x.Node } return nil } // 修改节点的DNS信息 type UpdateNodeDNSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` IpAddr string `protobuf:"bytes,2,opt,name=ipAddr,proto3" json:"ipAddr,omitempty"` NodeIPAddressId int64 `protobuf:"varint,5,opt,name=nodeIPAddressId,proto3" json:"nodeIPAddressId,omitempty"` DnsDomainId int64 `protobuf:"varint,3,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` Routes []string `protobuf:"bytes,4,rep,name=routes,proto3" json:"routes,omitempty"` } func (x *UpdateNodeDNSRequest) Reset() { *x = UpdateNodeDNSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeDNSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeDNSRequest) ProtoMessage() {} func (x *UpdateNodeDNSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeDNSRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeDNSRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{51} } func (x *UpdateNodeDNSRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeDNSRequest) GetIpAddr() string { if x != nil { return x.IpAddr } return "" } func (x *UpdateNodeDNSRequest) GetNodeIPAddressId() int64 { if x != nil { return x.NodeIPAddressId } return 0 } func (x *UpdateNodeDNSRequest) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } func (x *UpdateNodeDNSRequest) GetRoutes() []string { if x != nil { return x.Routes } return nil } // 计算某个区域下的节点数量 type CountAllEnabledNodesWithNodeRegionIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeRegionId int64 `protobuf:"varint,1,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` } func (x *CountAllEnabledNodesWithNodeRegionIdRequest) Reset() { *x = CountAllEnabledNodesWithNodeRegionIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodesWithNodeRegionIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodesWithNodeRegionIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodesWithNodeRegionIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CountAllEnabledNodesWithNodeRegionIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodesWithNodeRegionIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{52} } func (x *CountAllEnabledNodesWithNodeRegionIdRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } // 根据一组ID获取节点信息 type FindEnabledNodesWithIdsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeIds []int64 `protobuf:"varint,1,rep,packed,name=nodeIds,proto3" json:"nodeIds,omitempty"` } func (x *FindEnabledNodesWithIdsRequest) Reset() { *x = FindEnabledNodesWithIdsRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodesWithIdsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodesWithIdsRequest) ProtoMessage() {} func (x *FindEnabledNodesWithIdsRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodesWithIdsRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodesWithIdsRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{53} } func (x *FindEnabledNodesWithIdsRequest) GetNodeIds() []int64 { if x != nil { return x.NodeIds } return nil } type FindEnabledNodesWithIdsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *FindEnabledNodesWithIdsResponse) Reset() { *x = FindEnabledNodesWithIdsResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodesWithIdsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodesWithIdsResponse) ProtoMessage() {} func (x *FindEnabledNodesWithIdsResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodesWithIdsResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodesWithIdsResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{54} } func (x *FindEnabledNodesWithIdsResponse) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } // 检查新版本 type CheckNodeLatestVersionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Os string `protobuf:"bytes,1,opt,name=os,proto3" json:"os,omitempty"` Arch string `protobuf:"bytes,2,opt,name=arch,proto3" json:"arch,omitempty"` CurrentVersion string `protobuf:"bytes,3,opt,name=currentVersion,proto3" json:"currentVersion,omitempty"` } func (x *CheckNodeLatestVersionRequest) Reset() { *x = CheckNodeLatestVersionRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckNodeLatestVersionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckNodeLatestVersionRequest) ProtoMessage() {} func (x *CheckNodeLatestVersionRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckNodeLatestVersionRequest.ProtoReflect.Descriptor instead. func (*CheckNodeLatestVersionRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{55} } func (x *CheckNodeLatestVersionRequest) GetOs() string { if x != nil { return x.Os } return "" } func (x *CheckNodeLatestVersionRequest) GetArch() string { if x != nil { return x.Arch } return "" } func (x *CheckNodeLatestVersionRequest) GetCurrentVersion() string { if x != nil { return x.CurrentVersion } return "" } type CheckNodeLatestVersionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HasNewVersion bool `protobuf:"varint,1,opt,name=hasNewVersion,proto3" json:"hasNewVersion,omitempty"` NewVersion string `protobuf:"bytes,2,opt,name=newVersion,proto3" json:"newVersion,omitempty"` } func (x *CheckNodeLatestVersionResponse) Reset() { *x = CheckNodeLatestVersionResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckNodeLatestVersionResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckNodeLatestVersionResponse) ProtoMessage() {} func (x *CheckNodeLatestVersionResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckNodeLatestVersionResponse.ProtoReflect.Descriptor instead. func (*CheckNodeLatestVersionResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{56} } func (x *CheckNodeLatestVersionResponse) GetHasNewVersion() bool { if x != nil { return x.HasNewVersion } return false } func (x *CheckNodeLatestVersionResponse) GetNewVersion() string { if x != nil { return x.NewVersion } return "" } // 设置节点上线状态 type UpdateNodeUpRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` IsUp bool `protobuf:"varint,2,opt,name=isUp,proto3" json:"isUp,omitempty"` } func (x *UpdateNodeUpRequest) Reset() { *x = UpdateNodeUpRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeUpRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeUpRequest) ProtoMessage() {} func (x *UpdateNodeUpRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeUpRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeUpRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{57} } func (x *UpdateNodeUpRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeUpRequest) GetIsUp() bool { if x != nil { return x.IsUp } return false } // 下载最新边缘节点安装文件 type DownloadNodeInstallationFileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Os string `protobuf:"bytes,1,opt,name=os,proto3" json:"os,omitempty"` Arch string `protobuf:"bytes,2,opt,name=arch,proto3" json:"arch,omitempty"` ChunkOffset int64 `protobuf:"varint,3,opt,name=chunkOffset,proto3" json:"chunkOffset,omitempty"` } func (x *DownloadNodeInstallationFileRequest) Reset() { *x = DownloadNodeInstallationFileRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DownloadNodeInstallationFileRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownloadNodeInstallationFileRequest) ProtoMessage() {} func (x *DownloadNodeInstallationFileRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DownloadNodeInstallationFileRequest.ProtoReflect.Descriptor instead. func (*DownloadNodeInstallationFileRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{58} } func (x *DownloadNodeInstallationFileRequest) GetOs() string { if x != nil { return x.Os } return "" } func (x *DownloadNodeInstallationFileRequest) GetArch() string { if x != nil { return x.Arch } return "" } func (x *DownloadNodeInstallationFileRequest) GetChunkOffset() int64 { if x != nil { return x.ChunkOffset } return 0 } type DownloadNodeInstallationFileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChunkData []byte `protobuf:"bytes,1,opt,name=chunkData,proto3" json:"chunkData,omitempty"` Sum string `protobuf:"bytes,2,opt,name=sum,proto3" json:"sum,omitempty"` // 文件的md5sum Offset int64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` Filename string `protobuf:"bytes,5,opt,name=filename,proto3" json:"filename,omitempty"` } func (x *DownloadNodeInstallationFileResponse) Reset() { *x = DownloadNodeInstallationFileResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DownloadNodeInstallationFileResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownloadNodeInstallationFileResponse) ProtoMessage() {} func (x *DownloadNodeInstallationFileResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DownloadNodeInstallationFileResponse.ProtoReflect.Descriptor instead. func (*DownloadNodeInstallationFileResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{59} } func (x *DownloadNodeInstallationFileResponse) GetChunkData() []byte { if x != nil { return x.ChunkData } return nil } func (x *DownloadNodeInstallationFileResponse) GetSum() string { if x != nil { return x.Sum } return "" } func (x *DownloadNodeInstallationFileResponse) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *DownloadNodeInstallationFileResponse) GetVersion() string { if x != nil { return x.Version } return "" } func (x *DownloadNodeInstallationFileResponse) GetFilename() string { if x != nil { return x.Filename } return "" } // 修改节点系统信息 type UpdateNodeSystemRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` MaxCPU int32 `protobuf:"varint,2,opt,name=maxCPU,proto3" json:"maxCPU,omitempty"` } func (x *UpdateNodeSystemRequest) Reset() { *x = UpdateNodeSystemRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeSystemRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeSystemRequest) ProtoMessage() {} func (x *UpdateNodeSystemRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeSystemRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeSystemRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{60} } func (x *UpdateNodeSystemRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeSystemRequest) GetMaxCPU() int32 { if x != nil { return x.MaxCPU } return 0 } // 修改节点缓存设置 type UpdateNodeCacheRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID MaxCacheDiskCapacity *SizeCapacity `protobuf:"bytes,2,opt,name=maxCacheDiskCapacity,proto3" json:"maxCacheDiskCapacity,omitempty"` // 磁盘容量限制 MaxCacheMemoryCapacity *SizeCapacity `protobuf:"bytes,3,opt,name=maxCacheMemoryCapacity,proto3" json:"maxCacheMemoryCapacity,omitempty"` // 内存容量限制 CacheDiskDir string `protobuf:"bytes,4,opt,name=cacheDiskDir,proto3" json:"cacheDiskDir,omitempty"` // 磁盘缓存目录 CacheDiskSubDirsJSON []byte `protobuf:"bytes,5,opt,name=cacheDiskSubDirsJSON,proto3" json:"cacheDiskSubDirsJSON,omitempty"` // 磁盘缓存子目录 } func (x *UpdateNodeCacheRequest) Reset() { *x = UpdateNodeCacheRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeCacheRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeCacheRequest) ProtoMessage() {} func (x *UpdateNodeCacheRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeCacheRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeCacheRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{61} } func (x *UpdateNodeCacheRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeCacheRequest) GetMaxCacheDiskCapacity() *SizeCapacity { if x != nil { return x.MaxCacheDiskCapacity } return nil } func (x *UpdateNodeCacheRequest) GetMaxCacheMemoryCapacity() *SizeCapacity { if x != nil { return x.MaxCacheMemoryCapacity } return nil } func (x *UpdateNodeCacheRequest) GetCacheDiskDir() string { if x != nil { return x.CacheDiskDir } return "" } func (x *UpdateNodeCacheRequest) GetCacheDiskSubDirsJSON() []byte { if x != nil { return x.CacheDiskSubDirsJSON } return nil } // 读取节点级别信息 type FindNodeLevelInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeLevelInfoRequest) Reset() { *x = FindNodeLevelInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeLevelInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeLevelInfoRequest) ProtoMessage() {} func (x *FindNodeLevelInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeLevelInfoRequest.ProtoReflect.Descriptor instead. func (*FindNodeLevelInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{62} } type FindNodeLevelInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Level int32 `protobuf:"varint,1,opt,name=level,proto3" json:"level,omitempty"` ParentNodesMapJSON []byte `protobuf:"bytes,2,opt,name=parentNodesMapJSON,proto3" json:"parentNodesMapJSON,omitempty"` } func (x *FindNodeLevelInfoResponse) Reset() { *x = FindNodeLevelInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeLevelInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeLevelInfoResponse) ProtoMessage() {} func (x *FindNodeLevelInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeLevelInfoResponse.ProtoReflect.Descriptor instead. func (*FindNodeLevelInfoResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{63} } func (x *FindNodeLevelInfoResponse) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *FindNodeLevelInfoResponse) GetParentNodesMapJSON() []byte { if x != nil { return x.ParentNodesMapJSON } return nil } // 读取节点DNS Resolver type FindNodeDNSResolverRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *FindNodeDNSResolverRequest) Reset() { *x = FindNodeDNSResolverRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeDNSResolverRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeDNSResolverRequest) ProtoMessage() {} func (x *FindNodeDNSResolverRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeDNSResolverRequest.ProtoReflect.Descriptor instead. func (*FindNodeDNSResolverRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{64} } func (x *FindNodeDNSResolverRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindNodeDNSResolverResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DnsResolverJSON []byte `protobuf:"bytes,1,opt,name=dnsResolverJSON,proto3" json:"dnsResolverJSON,omitempty"` } func (x *FindNodeDNSResolverResponse) Reset() { *x = FindNodeDNSResolverResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeDNSResolverResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeDNSResolverResponse) ProtoMessage() {} func (x *FindNodeDNSResolverResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeDNSResolverResponse.ProtoReflect.Descriptor instead. func (*FindNodeDNSResolverResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{65} } func (x *FindNodeDNSResolverResponse) GetDnsResolverJSON() []byte { if x != nil { return x.DnsResolverJSON } return nil } // 修改DNS Resolver type UpdateNodeDNSResolverRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` DnsResolverJSON []byte `protobuf:"bytes,2,opt,name=dnsResolverJSON,proto3" json:"dnsResolverJSON,omitempty"` } func (x *UpdateNodeDNSResolverRequest) Reset() { *x = UpdateNodeDNSResolverRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeDNSResolverRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeDNSResolverRequest) ProtoMessage() {} func (x *UpdateNodeDNSResolverRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeDNSResolverRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeDNSResolverRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{66} } func (x *UpdateNodeDNSResolverRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeDNSResolverRequest) GetDnsResolverJSON() []byte { if x != nil { return x.DnsResolverJSON } return nil } // 获取节点的DDoS设置 type FindNodeDDoSProtectionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *FindNodeDDoSProtectionRequest) Reset() { *x = FindNodeDDoSProtectionRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeDDoSProtectionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeDDoSProtectionRequest) ProtoMessage() {} func (x *FindNodeDDoSProtectionRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeDDoSProtectionRequest.ProtoReflect.Descriptor instead. func (*FindNodeDDoSProtectionRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{67} } func (x *FindNodeDDoSProtectionRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindNodeDDoSProtectionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DdosProtectionJSON []byte `protobuf:"bytes,1,opt,name=ddosProtectionJSON,proto3" json:"ddosProtectionJSON,omitempty"` } func (x *FindNodeDDoSProtectionResponse) Reset() { *x = FindNodeDDoSProtectionResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeDDoSProtectionResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeDDoSProtectionResponse) ProtoMessage() {} func (x *FindNodeDDoSProtectionResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeDDoSProtectionResponse.ProtoReflect.Descriptor instead. func (*FindNodeDDoSProtectionResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{68} } func (x *FindNodeDDoSProtectionResponse) GetDdosProtectionJSON() []byte { if x != nil { return x.DdosProtectionJSON } return nil } // 修改节点的DDoS设置 type UpdateNodeDDoSProtectionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` DdosProtectionJSON []byte `protobuf:"bytes,2,opt,name=ddosProtectionJSON,proto3" json:"ddosProtectionJSON,omitempty"` } func (x *UpdateNodeDDoSProtectionRequest) Reset() { *x = UpdateNodeDDoSProtectionRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeDDoSProtectionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeDDoSProtectionRequest) ProtoMessage() {} func (x *UpdateNodeDDoSProtectionRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeDDoSProtectionRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeDDoSProtectionRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{69} } func (x *UpdateNodeDDoSProtectionRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeDDoSProtectionRequest) GetDdosProtectionJSON() []byte { if x != nil { return x.DdosProtectionJSON } return nil } // 取得节点的服务全局配置 type FindNodeGlobalServerConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *FindNodeGlobalServerConfigRequest) Reset() { *x = FindNodeGlobalServerConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeGlobalServerConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeGlobalServerConfigRequest) ProtoMessage() {} func (x *FindNodeGlobalServerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeGlobalServerConfigRequest.ProtoReflect.Descriptor instead. func (*FindNodeGlobalServerConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{70} } func (x *FindNodeGlobalServerConfigRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindNodeGlobalServerConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GlobalServerConfigJSON []byte `protobuf:"bytes,1,opt,name=globalServerConfigJSON,proto3" json:"globalServerConfigJSON,omitempty"` } func (x *FindNodeGlobalServerConfigResponse) Reset() { *x = FindNodeGlobalServerConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeGlobalServerConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeGlobalServerConfigResponse) ProtoMessage() {} func (x *FindNodeGlobalServerConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeGlobalServerConfigResponse.ProtoReflect.Descriptor instead. func (*FindNodeGlobalServerConfigResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{71} } func (x *FindNodeGlobalServerConfigResponse) GetGlobalServerConfigJSON() []byte { if x != nil { return x.GlobalServerConfigJSON } return nil } // 取得节点的配置概要信息 type FindEnabledNodeConfigInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *FindEnabledNodeConfigInfoRequest) Reset() { *x = FindEnabledNodeConfigInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeConfigInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeConfigInfoRequest) ProtoMessage() {} func (x *FindEnabledNodeConfigInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[72] 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 FindEnabledNodeConfigInfoRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeConfigInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{72} } func (x *FindEnabledNodeConfigInfoRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindEnabledNodeConfigInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HasDNSInfo bool `protobuf:"varint,1,opt,name=hasDNSInfo,proto3" json:"hasDNSInfo,omitempty"` // 是否有DNS设置 HasCacheInfo bool `protobuf:"varint,2,opt,name=hasCacheInfo,proto3" json:"hasCacheInfo,omitempty"` // 是否有缓存设置 HasThresholds bool `protobuf:"varint,3,opt,name=hasThresholds,proto3" json:"hasThresholds,omitempty"` // 是否有阈值设置 HasSSH bool `protobuf:"varint,4,opt,name=hasSSH,proto3" json:"hasSSH,omitempty"` // 是否有SSH设置 HasSystemSettings bool `protobuf:"varint,5,opt,name=hasSystemSettings,proto3" json:"hasSystemSettings,omitempty"` // 是否有系统设置 HasDDoSProtection bool `protobuf:"varint,6,opt,name=hasDDoSProtection,proto3" json:"hasDDoSProtection,omitempty"` // 是否有DDoS防护设置 HasScheduleSettings bool `protobuf:"varint,7,opt,name=hasScheduleSettings,proto3" json:"hasScheduleSettings,omitempty"` // 是否有调度设置 } func (x *FindEnabledNodeConfigInfoResponse) Reset() { *x = FindEnabledNodeConfigInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeConfigInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeConfigInfoResponse) ProtoMessage() {} func (x *FindEnabledNodeConfigInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[73] 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 FindEnabledNodeConfigInfoResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeConfigInfoResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{73} } func (x *FindEnabledNodeConfigInfoResponse) GetHasDNSInfo() bool { if x != nil { return x.HasDNSInfo } return false } func (x *FindEnabledNodeConfigInfoResponse) GetHasCacheInfo() bool { if x != nil { return x.HasCacheInfo } return false } func (x *FindEnabledNodeConfigInfoResponse) GetHasThresholds() bool { if x != nil { return x.HasThresholds } return false } func (x *FindEnabledNodeConfigInfoResponse) GetHasSSH() bool { if x != nil { return x.HasSSH } return false } func (x *FindEnabledNodeConfigInfoResponse) GetHasSystemSettings() bool { if x != nil { return x.HasSystemSettings } return false } func (x *FindEnabledNodeConfigInfoResponse) GetHasDDoSProtection() bool { if x != nil { return x.HasDDoSProtection } return false } func (x *FindEnabledNodeConfigInfoResponse) GetHasScheduleSettings() bool { if x != nil { return x.HasScheduleSettings } return false } // 查找节点区域信息数量 type CountAllNodeRegionInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeRegionId int64 `protobuf:"varint,1,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` // 区域ID,可选 } func (x *CountAllNodeRegionInfoRequest) Reset() { *x = CountAllNodeRegionInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllNodeRegionInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllNodeRegionInfoRequest) ProtoMessage() {} func (x *CountAllNodeRegionInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[74] 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 CountAllNodeRegionInfoRequest.ProtoReflect.Descriptor instead. func (*CountAllNodeRegionInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{74} } func (x *CountAllNodeRegionInfoRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } // 列出单页节点区域信息 type ListNodeRegionInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeRegionId int64 `protobuf:"varint,1,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` // 区域ID,可选 Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` } func (x *ListNodeRegionInfoRequest) Reset() { *x = ListNodeRegionInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListNodeRegionInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListNodeRegionInfoRequest) ProtoMessage() {} func (x *ListNodeRegionInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[75] 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 ListNodeRegionInfoRequest.ProtoReflect.Descriptor instead. func (*ListNodeRegionInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{75} } func (x *ListNodeRegionInfoRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } func (x *ListNodeRegionInfoRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *ListNodeRegionInfoRequest) GetSize() int64 { if x != nil { return x.Size } return 0 } type ListNodeRegionInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InfoList []*ListNodeRegionInfoResponse_Info `protobuf:"bytes,1,rep,name=infoList,proto3" json:"infoList,omitempty"` } func (x *ListNodeRegionInfoResponse) Reset() { *x = ListNodeRegionInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListNodeRegionInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListNodeRegionInfoResponse) ProtoMessage() {} func (x *ListNodeRegionInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[76] 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 ListNodeRegionInfoResponse.ProtoReflect.Descriptor instead. func (*ListNodeRegionInfoResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{76} } func (x *ListNodeRegionInfoResponse) GetInfoList() []*ListNodeRegionInfoResponse_Info { if x != nil { return x.InfoList } return nil } // 修改节点区域信息 type UpdateNodeRegionInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` NodeRegionId int64 `protobuf:"varint,2,opt,name=nodeRegionId,proto3" json:"nodeRegionId,omitempty"` } func (x *UpdateNodeRegionInfoRequest) Reset() { *x = UpdateNodeRegionInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeRegionInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeRegionInfoRequest) ProtoMessage() {} func (x *UpdateNodeRegionInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[77] 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 UpdateNodeRegionInfoRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeRegionInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{77} } func (x *UpdateNodeRegionInfoRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeRegionInfoRequest) GetNodeRegionId() int64 { if x != nil { return x.NodeRegionId } return 0 } // 查找单个节点的API相关配置 type FindNodeAPIConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` } func (x *FindNodeAPIConfigRequest) Reset() { *x = FindNodeAPIConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeAPIConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeAPIConfigRequest) ProtoMessage() {} func (x *FindNodeAPIConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[78] 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 FindNodeAPIConfigRequest.ProtoReflect.Descriptor instead. func (*FindNodeAPIConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{78} } func (x *FindNodeAPIConfigRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindNodeAPIConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiNodeAddrsJSON []byte `protobuf:"bytes,1,opt,name=apiNodeAddrsJSON,proto3" json:"apiNodeAddrsJSON,omitempty"` } func (x *FindNodeAPIConfigResponse) Reset() { *x = FindNodeAPIConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeAPIConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeAPIConfigResponse) ProtoMessage() {} func (x *FindNodeAPIConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[79] 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 FindNodeAPIConfigResponse.ProtoReflect.Descriptor instead. func (*FindNodeAPIConfigResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{79} } func (x *FindNodeAPIConfigResponse) GetApiNodeAddrsJSON() []byte { if x != nil { return x.ApiNodeAddrsJSON } return nil } // 修改某个节点的API相关配置 type UpdateNodeAPIConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` ApiNodeAddrsJSON []byte `protobuf:"bytes,2,opt,name=apiNodeAddrsJSON,proto3" json:"apiNodeAddrsJSON,omitempty"` } func (x *UpdateNodeAPIConfigRequest) Reset() { *x = UpdateNodeAPIConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeAPIConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeAPIConfigRequest) ProtoMessage() {} func (x *UpdateNodeAPIConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[80] 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 UpdateNodeAPIConfigRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeAPIConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{80} } func (x *UpdateNodeAPIConfigRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeAPIConfigRequest) GetApiNodeAddrsJSON() []byte { if x != nil { return x.ApiNodeAddrsJSON } return nil } // 查找节点的UAM策略 type FindNodeUAMPoliciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeUAMPoliciesRequest) Reset() { *x = FindNodeUAMPoliciesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeUAMPoliciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeUAMPoliciesRequest) ProtoMessage() {} func (x *FindNodeUAMPoliciesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[81] 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 FindNodeUAMPoliciesRequest.ProtoReflect.Descriptor instead. func (*FindNodeUAMPoliciesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{81} } type FindNodeUAMPoliciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UamPolicies []*FindNodeUAMPoliciesResponse_UAMPolicy `protobuf:"bytes,1,rep,name=uamPolicies,proto3" json:"uamPolicies,omitempty"` // UAM策略列表 } func (x *FindNodeUAMPoliciesResponse) Reset() { *x = FindNodeUAMPoliciesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeUAMPoliciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeUAMPoliciesResponse) ProtoMessage() {} func (x *FindNodeUAMPoliciesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[82] 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 FindNodeUAMPoliciesResponse.ProtoReflect.Descriptor instead. func (*FindNodeUAMPoliciesResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{82} } func (x *FindNodeUAMPoliciesResponse) GetUamPolicies() []*FindNodeUAMPoliciesResponse_UAMPolicy { if x != nil { return x.UamPolicies } return nil } // 查找节点的HTTP CC策略 type FindNodeHTTPCCPoliciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeHTTPCCPoliciesRequest) Reset() { *x = FindNodeHTTPCCPoliciesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTPCCPoliciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTPCCPoliciesRequest) ProtoMessage() {} func (x *FindNodeHTTPCCPoliciesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[83] 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 FindNodeHTTPCCPoliciesRequest.ProtoReflect.Descriptor instead. func (*FindNodeHTTPCCPoliciesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{83} } type FindNodeHTTPCCPoliciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpCCPolicies []*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy `protobuf:"bytes,1,rep,name=httpCCPolicies,proto3" json:"httpCCPolicies,omitempty"` // HTTP CC策略列表 } func (x *FindNodeHTTPCCPoliciesResponse) Reset() { *x = FindNodeHTTPCCPoliciesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTPCCPoliciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTPCCPoliciesResponse) ProtoMessage() {} func (x *FindNodeHTTPCCPoliciesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[84] 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 FindNodeHTTPCCPoliciesResponse.ProtoReflect.Descriptor instead. func (*FindNodeHTTPCCPoliciesResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{84} } func (x *FindNodeHTTPCCPoliciesResponse) GetHttpCCPolicies() []*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy { if x != nil { return x.HttpCCPolicies } return nil } // 查找节点的HTTP3策略 type FindNodeHTTP3PoliciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeHTTP3PoliciesRequest) Reset() { *x = FindNodeHTTP3PoliciesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTP3PoliciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTP3PoliciesRequest) ProtoMessage() {} func (x *FindNodeHTTP3PoliciesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[85] 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 FindNodeHTTP3PoliciesRequest.ProtoReflect.Descriptor instead. func (*FindNodeHTTP3PoliciesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{85} } type FindNodeHTTP3PoliciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Http3Policies []*FindNodeHTTP3PoliciesResponse_HTTP3Policy `protobuf:"bytes,1,rep,name=http3Policies,proto3" json:"http3Policies,omitempty"` // HTTP3策略列表 } func (x *FindNodeHTTP3PoliciesResponse) Reset() { *x = FindNodeHTTP3PoliciesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTP3PoliciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTP3PoliciesResponse) ProtoMessage() {} func (x *FindNodeHTTP3PoliciesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[86] 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 FindNodeHTTP3PoliciesResponse.ProtoReflect.Descriptor instead. func (*FindNodeHTTP3PoliciesResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{86} } func (x *FindNodeHTTP3PoliciesResponse) GetHttp3Policies() []*FindNodeHTTP3PoliciesResponse_HTTP3Policy { if x != nil { return x.Http3Policies } return nil } // 查找节点的自定义页面策略 type FindNodeHTTPPagesPoliciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeHTTPPagesPoliciesRequest) Reset() { *x = FindNodeHTTPPagesPoliciesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTPPagesPoliciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTPPagesPoliciesRequest) ProtoMessage() {} func (x *FindNodeHTTPPagesPoliciesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[87] 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 FindNodeHTTPPagesPoliciesRequest.ProtoReflect.Descriptor instead. func (*FindNodeHTTPPagesPoliciesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{87} } type FindNodeHTTPPagesPoliciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpPagesPolicies []*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy `protobuf:"bytes,1,rep,name=httpPagesPolicies,proto3" json:"httpPagesPolicies,omitempty"` // 自定义页面策略列表 } func (x *FindNodeHTTPPagesPoliciesResponse) Reset() { *x = FindNodeHTTPPagesPoliciesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTPPagesPoliciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTPPagesPoliciesResponse) ProtoMessage() {} func (x *FindNodeHTTPPagesPoliciesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[88] 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 FindNodeHTTPPagesPoliciesResponse.ProtoReflect.Descriptor instead. func (*FindNodeHTTPPagesPoliciesResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{88} } func (x *FindNodeHTTPPagesPoliciesResponse) GetHttpPagesPolicies() []*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy { if x != nil { return x.HttpPagesPolicies } return nil } // 查找节点调度信息 type FindNodeScheduleInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *FindNodeScheduleInfoRequest) Reset() { *x = FindNodeScheduleInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeScheduleInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeScheduleInfoRequest) ProtoMessage() {} func (x *FindNodeScheduleInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[89] 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 FindNodeScheduleInfoRequest.ProtoReflect.Descriptor instead. func (*FindNodeScheduleInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{89} } func (x *FindNodeScheduleInfoRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } type FindNodeScheduleInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScheduleInfo *FindNodeScheduleInfoResponse_ScheduleInfo `protobuf:"bytes,1,opt,name=scheduleInfo,proto3" json:"scheduleInfo,omitempty"` // 调度信息 } func (x *FindNodeScheduleInfoResponse) Reset() { *x = FindNodeScheduleInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeScheduleInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeScheduleInfoResponse) ProtoMessage() {} func (x *FindNodeScheduleInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[90] 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 FindNodeScheduleInfoResponse.ProtoReflect.Descriptor instead. func (*FindNodeScheduleInfoResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{90} } func (x *FindNodeScheduleInfoResponse) GetScheduleInfo() *FindNodeScheduleInfoResponse_ScheduleInfo { if x != nil { return x.ScheduleInfo } return nil } // 修改节点调度信息 type UpdateNodeScheduleInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID OfflineDay string `protobuf:"bytes,2,opt,name=offlineDay,proto3" json:"offlineDay,omitempty"` // 下线日期,格式YYYYMMDD IsBackupForCluster bool `protobuf:"varint,3,opt,name=isBackupForCluster,proto3" json:"isBackupForCluster,omitempty"` // 是否为集群备份节点 IsBackupForGroup bool `protobuf:"varint,4,opt,name=isBackupForGroup,proto3" json:"isBackupForGroup,omitempty"` // 是否为分组备份节点 BackupIPs []string `protobuf:"bytes,5,rep,name=backupIPs,proto3" json:"backupIPs,omitempty"` // 备用IP } func (x *UpdateNodeScheduleInfoRequest) Reset() { *x = UpdateNodeScheduleInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeScheduleInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeScheduleInfoRequest) ProtoMessage() {} func (x *UpdateNodeScheduleInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[91] 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 UpdateNodeScheduleInfoRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeScheduleInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{91} } func (x *UpdateNodeScheduleInfoRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeScheduleInfoRequest) GetOfflineDay() string { if x != nil { return x.OfflineDay } return "" } func (x *UpdateNodeScheduleInfoRequest) GetIsBackupForCluster() bool { if x != nil { return x.IsBackupForCluster } return false } func (x *UpdateNodeScheduleInfoRequest) GetIsBackupForGroup() bool { if x != nil { return x.IsBackupForGroup } return false } func (x *UpdateNodeScheduleInfoRequest) GetBackupIPs() []string { if x != nil { return x.BackupIPs } return nil } // 重置节点动作状态 type ResetNodeActionStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *ResetNodeActionStatusRequest) Reset() { *x = ResetNodeActionStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResetNodeActionStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResetNodeActionStatusRequest) ProtoMessage() {} func (x *ResetNodeActionStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[92] 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 ResetNodeActionStatusRequest.ProtoReflect.Descriptor instead. func (*ResetNodeActionStatusRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{92} } func (x *ResetNodeActionStatusRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } // 查找集群的节点调度信息 type FindAllNodeScheduleInfoWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID } func (x *FindAllNodeScheduleInfoWithNodeClusterIdRequest) Reset() { *x = FindAllNodeScheduleInfoWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllNodeScheduleInfoWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllNodeScheduleInfoWithNodeClusterIdRequest) ProtoMessage() {} func (x *FindAllNodeScheduleInfoWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[93] 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 FindAllNodeScheduleInfoWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*FindAllNodeScheduleInfoWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{93} } func (x *FindAllNodeScheduleInfoWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindAllNodeScheduleInfoWithNodeClusterIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` // 调动信息列表 } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse) Reset() { *x = FindAllNodeScheduleInfoWithNodeClusterIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllNodeScheduleInfoWithNodeClusterIdResponse) ProtoMessage() {} func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[94] 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 FindAllNodeScheduleInfoWithNodeClusterIdResponse.ProtoReflect.Descriptor instead. func (*FindAllNodeScheduleInfoWithNodeClusterIdResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{94} } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse) GetNodes() []*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo { if x != nil { return x.Nodes } return nil } // 同步动作设置到分组 type CopyNodeActionsToNodeGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *CopyNodeActionsToNodeGroupRequest) Reset() { *x = CopyNodeActionsToNodeGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CopyNodeActionsToNodeGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CopyNodeActionsToNodeGroupRequest) ProtoMessage() {} func (x *CopyNodeActionsToNodeGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[95] 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 CopyNodeActionsToNodeGroupRequest.ProtoReflect.Descriptor instead. func (*CopyNodeActionsToNodeGroupRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{95} } func (x *CopyNodeActionsToNodeGroupRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } // 同步动作设置到集群 type CopyNodeActionsToNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID } func (x *CopyNodeActionsToNodeClusterRequest) Reset() { *x = CopyNodeActionsToNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CopyNodeActionsToNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CopyNodeActionsToNodeClusterRequest) ProtoMessage() {} func (x *CopyNodeActionsToNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[96] 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 CopyNodeActionsToNodeClusterRequest.ProtoReflect.Descriptor instead. func (*CopyNodeActionsToNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{96} } func (x *CopyNodeActionsToNodeClusterRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } // 查找节点的TOA配置 type FindNodeTOAConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeTOAConfigRequest) Reset() { *x = FindNodeTOAConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeTOAConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeTOAConfigRequest) ProtoMessage() {} func (x *FindNodeTOAConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[97] 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 FindNodeTOAConfigRequest.ProtoReflect.Descriptor instead. func (*FindNodeTOAConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{97} } type FindNodeTOAConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ToaJSON []byte `protobuf:"bytes,1,opt,name=toaJSON,proto3" json:"toaJSON,omitempty"` // TOA配置 } func (x *FindNodeTOAConfigResponse) Reset() { *x = FindNodeTOAConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeTOAConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeTOAConfigResponse) ProtoMessage() {} func (x *FindNodeTOAConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[98] 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 FindNodeTOAConfigResponse.ProtoReflect.Descriptor instead. func (*FindNodeTOAConfigResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{98} } func (x *FindNodeTOAConfigResponse) GetToaJSON() []byte { if x != nil { return x.ToaJSON } return nil } // 查找节点的网络安全策略 type FindNodeNetworkSecurityPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeNetworkSecurityPolicyRequest) Reset() { *x = FindNodeNetworkSecurityPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeNetworkSecurityPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeNetworkSecurityPolicyRequest) ProtoMessage() {} func (x *FindNodeNetworkSecurityPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[99] 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 FindNodeNetworkSecurityPolicyRequest.ProtoReflect.Descriptor instead. func (*FindNodeNetworkSecurityPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{99} } type FindNodeNetworkSecurityPolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NetworkSecurityPolicyJSON []byte `protobuf:"bytes,1,opt,name=networkSecurityPolicyJSON,proto3" json:"networkSecurityPolicyJSON,omitempty"` // 网络安全策略 } func (x *FindNodeNetworkSecurityPolicyResponse) Reset() { *x = FindNodeNetworkSecurityPolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeNetworkSecurityPolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeNetworkSecurityPolicyResponse) ProtoMessage() {} func (x *FindNodeNetworkSecurityPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[100] 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 FindNodeNetworkSecurityPolicyResponse.ProtoReflect.Descriptor instead. func (*FindNodeNetworkSecurityPolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{100} } func (x *FindNodeNetworkSecurityPolicyResponse) GetNetworkSecurityPolicyJSON() []byte { if x != nil { return x.NetworkSecurityPolicyJSON } return nil } // 查找节点的WebP策略 type FindNodeWebPPoliciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindNodeWebPPoliciesRequest) Reset() { *x = FindNodeWebPPoliciesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeWebPPoliciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeWebPPoliciesRequest) ProtoMessage() {} func (x *FindNodeWebPPoliciesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[101] 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 FindNodeWebPPoliciesRequest.ProtoReflect.Descriptor instead. func (*FindNodeWebPPoliciesRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{101} } type FindNodeWebPPoliciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WebPPolicies []*FindNodeWebPPoliciesResponse_WebPPolicy `protobuf:"bytes,1,rep,name=webPPolicies,proto3" json:"webPPolicies,omitempty"` // WebP策略列表 } func (x *FindNodeWebPPoliciesResponse) Reset() { *x = FindNodeWebPPoliciesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeWebPPoliciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeWebPPoliciesResponse) ProtoMessage() {} func (x *FindNodeWebPPoliciesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[102] 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 FindNodeWebPPoliciesResponse.ProtoReflect.Descriptor instead. func (*FindNodeWebPPoliciesResponse) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{102} } func (x *FindNodeWebPPoliciesResponse) GetWebPPolicies() []*FindNodeWebPPoliciesResponse_WebPPolicy { if x != nil { return x.WebPPolicies } return nil } // 修改节点的启用状态 type UpdateNodeIsOnRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` // 是否启用 } func (x *UpdateNodeIsOnRequest) Reset() { *x = UpdateNodeIsOnRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeIsOnRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeIsOnRequest) ProtoMessage() {} func (x *UpdateNodeIsOnRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[103] 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 UpdateNodeIsOnRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeIsOnRequest) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{103} } func (x *UpdateNodeIsOnRequest) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *UpdateNodeIsOnRequest) GetIsOn() bool { if x != nil { return x.IsOn } return false } type FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` Os string `protobuf:"bytes,2,opt,name=os,proto3" json:"os,omitempty"` Arch string `protobuf:"bytes,3,opt,name=arch,proto3" json:"arch,omitempty"` OldVersion string `protobuf:"bytes,4,opt,name=oldVersion,proto3" json:"oldVersion,omitempty"` NewVersion string `protobuf:"bytes,5,opt,name=newVersion,proto3" json:"newVersion,omitempty"` } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) Reset() { *x = FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) ProtoMessage() {} func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[104] 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 FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade.ProtoReflect.Descriptor instead. func (*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{41, 0} } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) GetNode() *Node { if x != nil { return x.Node } return nil } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) GetOs() string { if x != nil { return x.Os } return "" } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) GetArch() string { if x != nil { return x.Arch } return "" } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) GetOldVersion() string { if x != nil { return x.OldVersion } return "" } func (x *FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade) GetNewVersion() string { if x != nil { return x.NewVersion } return "" } type ListNodeRegionInfoResponse_Info struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` NodeRegion *NodeRegion `protobuf:"bytes,10,opt,name=nodeRegion,proto3" json:"nodeRegion,omitempty"` NodeCluster *NodeCluster `protobuf:"bytes,11,opt,name=nodeCluster,proto3" json:"nodeCluster,omitempty"` } func (x *ListNodeRegionInfoResponse_Info) Reset() { *x = ListNodeRegionInfoResponse_Info{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListNodeRegionInfoResponse_Info) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListNodeRegionInfoResponse_Info) ProtoMessage() {} func (x *ListNodeRegionInfoResponse_Info) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[105] 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 ListNodeRegionInfoResponse_Info.ProtoReflect.Descriptor instead. func (*ListNodeRegionInfoResponse_Info) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{76, 0} } func (x *ListNodeRegionInfoResponse_Info) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *ListNodeRegionInfoResponse_Info) GetName() string { if x != nil { return x.Name } return "" } func (x *ListNodeRegionInfoResponse_Info) GetNodeRegion() *NodeRegion { if x != nil { return x.NodeRegion } return nil } func (x *ListNodeRegionInfoResponse_Info) GetNodeCluster() *NodeCluster { if x != nil { return x.NodeCluster } return nil } type FindNodeUAMPoliciesResponse_UAMPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID UamPolicyJSON []byte `protobuf:"bytes,2,opt,name=uamPolicyJSON,proto3" json:"uamPolicyJSON,omitempty"` // UAM策略配置 } func (x *FindNodeUAMPoliciesResponse_UAMPolicy) Reset() { *x = FindNodeUAMPoliciesResponse_UAMPolicy{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeUAMPoliciesResponse_UAMPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeUAMPoliciesResponse_UAMPolicy) ProtoMessage() {} func (x *FindNodeUAMPoliciesResponse_UAMPolicy) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[106] 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 FindNodeUAMPoliciesResponse_UAMPolicy.ProtoReflect.Descriptor instead. func (*FindNodeUAMPoliciesResponse_UAMPolicy) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{82, 0} } func (x *FindNodeUAMPoliciesResponse_UAMPolicy) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindNodeUAMPoliciesResponse_UAMPolicy) GetUamPolicyJSON() []byte { if x != nil { return x.UamPolicyJSON } return nil } type FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID HttpCCPolicyJSON []byte `protobuf:"bytes,2,opt,name=httpCCPolicyJSON,proto3" json:"httpCCPolicyJSON,omitempty"` // HTTP CC策略配置 } func (x *FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) Reset() { *x = FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) ProtoMessage() {} func (x *FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[107] 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 FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy.ProtoReflect.Descriptor instead. func (*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{84, 0} } func (x *FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy) GetHttpCCPolicyJSON() []byte { if x != nil { return x.HttpCCPolicyJSON } return nil } type FindNodeHTTP3PoliciesResponse_HTTP3Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID Http3PolicyJSON []byte `protobuf:"bytes,2,opt,name=http3PolicyJSON,proto3" json:"http3PolicyJSON,omitempty"` // HTTP3策略配置 } func (x *FindNodeHTTP3PoliciesResponse_HTTP3Policy) Reset() { *x = FindNodeHTTP3PoliciesResponse_HTTP3Policy{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTP3PoliciesResponse_HTTP3Policy) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTP3PoliciesResponse_HTTP3Policy) ProtoMessage() {} func (x *FindNodeHTTP3PoliciesResponse_HTTP3Policy) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[108] 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 FindNodeHTTP3PoliciesResponse_HTTP3Policy.ProtoReflect.Descriptor instead. func (*FindNodeHTTP3PoliciesResponse_HTTP3Policy) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{86, 0} } func (x *FindNodeHTTP3PoliciesResponse_HTTP3Policy) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindNodeHTTP3PoliciesResponse_HTTP3Policy) GetHttp3PolicyJSON() []byte { if x != nil { return x.Http3PolicyJSON } return nil } type FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID HttpPagesPolicyJSON []byte `protobuf:"bytes,2,opt,name=httpPagesPolicyJSON,proto3" json:"httpPagesPolicyJSON,omitempty"` // 自定义页面策略配置 } func (x *FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) Reset() { *x = FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) ProtoMessage() {} func (x *FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[109] 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 FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy.ProtoReflect.Descriptor instead. func (*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{88, 0} } func (x *FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy) GetHttpPagesPolicyJSON() []byte { if x != nil { return x.HttpPagesPolicyJSON } return nil } type FindNodeScheduleInfoResponse_ScheduleInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OfflineDay string `protobuf:"bytes,1,opt,name=offlineDay,proto3" json:"offlineDay,omitempty"` // 下线日期,格式YYYYMMDD IsBackupForCluster bool `protobuf:"varint,2,opt,name=isBackupForCluster,proto3" json:"isBackupForCluster,omitempty"` // 是否为集群备份节点 IsBackupForGroup bool `protobuf:"varint,3,opt,name=isBackupForGroup,proto3" json:"isBackupForGroup,omitempty"` // 是否为分组备份节点 BackupIPs []string `protobuf:"bytes,4,rep,name=backupIPs,proto3" json:"backupIPs,omitempty"` // 备用IP ActionStatusJSON []byte `protobuf:"bytes,5,opt,name=actionStatusJSON,proto3" json:"actionStatusJSON,omitempty"` // 动作状态 } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) Reset() { *x = FindNodeScheduleInfoResponse_ScheduleInfo{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeScheduleInfoResponse_ScheduleInfo) ProtoMessage() {} func (x *FindNodeScheduleInfoResponse_ScheduleInfo) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[110] 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 FindNodeScheduleInfoResponse_ScheduleInfo.ProtoReflect.Descriptor instead. func (*FindNodeScheduleInfoResponse_ScheduleInfo) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{90, 0} } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) GetOfflineDay() string { if x != nil { return x.OfflineDay } return "" } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) GetIsBackupForCluster() bool { if x != nil { return x.IsBackupForCluster } return false } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) GetIsBackupForGroup() bool { if x != nil { return x.IsBackupForGroup } return false } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) GetBackupIPs() []string { if x != nil { return x.BackupIPs } return nil } func (x *FindNodeScheduleInfoResponse_ScheduleInfo) GetActionStatusJSON() []byte { if x != nil { return x.ActionStatusJSON } return nil } type FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` // 节点ID NodeName string `protobuf:"bytes,2,opt,name=nodeName,proto3" json:"nodeName,omitempty"` // 节点名称 NodeGroupId int64 `protobuf:"varint,3,opt,name=nodeGroupId,proto3" json:"nodeGroupId,omitempty"` // 节点分组ID NodeGroupName string `protobuf:"bytes,4,opt,name=nodeGroupName,proto3" json:"nodeGroupName,omitempty"` // 节点分组名称 OfflineDay string `protobuf:"bytes,5,opt,name=offlineDay,proto3" json:"offlineDay,omitempty"` // 下线日期,格式YYYYMMDD IsBackupForCluster bool `protobuf:"varint,6,opt,name=isBackupForCluster,proto3" json:"isBackupForCluster,omitempty"` // 是否为集群备份节点 IsBackupForGroup bool `protobuf:"varint,7,opt,name=isBackupForGroup,proto3" json:"isBackupForGroup,omitempty"` // 是否为分组备份节点 BackupIPs []string `protobuf:"bytes,8,rep,name=backupIPs,proto3" json:"backupIPs,omitempty"` // 备用IP ActionStatusJSON []byte `protobuf:"bytes,9,opt,name=actionStatusJSON,proto3" json:"actionStatusJSON,omitempty"` // 动作状态 } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) Reset() { *x = FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) ProtoMessage() {} func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[111] 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 FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo.ProtoReflect.Descriptor instead. func (*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{94, 0} } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetNodeId() int64 { if x != nil { return x.NodeId } return 0 } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetNodeName() string { if x != nil { return x.NodeName } return "" } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetNodeGroupId() int64 { if x != nil { return x.NodeGroupId } return 0 } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetNodeGroupName() string { if x != nil { return x.NodeGroupName } return "" } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetOfflineDay() string { if x != nil { return x.OfflineDay } return "" } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetIsBackupForCluster() bool { if x != nil { return x.IsBackupForCluster } return false } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetIsBackupForGroup() bool { if x != nil { return x.IsBackupForGroup } return false } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetBackupIPs() []string { if x != nil { return x.BackupIPs } return nil } func (x *FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo) GetActionStatusJSON() []byte { if x != nil { return x.ActionStatusJSON } return nil } type FindNodeWebPPoliciesResponse_WebPPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID WebPPolicyJSON []byte `protobuf:"bytes,2,opt,name=webPPolicyJSON,proto3" json:"webPPolicyJSON,omitempty"` // WebP策略配置 } func (x *FindNodeWebPPoliciesResponse_WebPPolicy) Reset() { *x = FindNodeWebPPoliciesResponse_WebPPolicy{} if protoimpl.UnsafeEnabled { mi := &file_service_node_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeWebPPoliciesResponse_WebPPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeWebPPoliciesResponse_WebPPolicy) ProtoMessage() {} func (x *FindNodeWebPPoliciesResponse_WebPPolicy) ProtoReflect() protoreflect.Message { mi := &file_service_node_proto_msgTypes[112] 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 FindNodeWebPPoliciesResponse_WebPPolicy.ProtoReflect.Descriptor instead. func (*FindNodeWebPPoliciesResponse_WebPPolicy) Descriptor() ([]byte, []int) { return file_service_node_proto_rawDescGZIP(), []int{102, 0} } func (x *FindNodeWebPPoliciesResponse_WebPPolicy) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindNodeWebPPoliciesResponse_WebPPolicy) GetWebPPolicyJSON() []byte { if x != nil { return x.WebPPolicyJSON } return nil } var File_service_node_proto protoreflect.FileDescriptor var file_service_node_proto_rawDesc = []byte{ 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, 0x0a, 0x1b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xbc, 0x05, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x70, 0x75, 0x41, 0x73, 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x70, 0x75, 0x41, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x44, 0x65, 0x73, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x70, 0x75, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x41, 0x73, 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x41, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x73, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x73, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x41, 0x73, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x41, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x41, 0x73, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x41, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x73, 0x63, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x73, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x73, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x73, 0x63, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x73, 0x63, 0x22, 0x3f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x2b, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x22, 0x4e, 0x0a, 0x2c, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xcf, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x22, 0x30, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x35, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcf, 0x01, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x84, 0x02, 0x0a, 0x20, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x58, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x12, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x29, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2e, 0x0a, 0x14, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x15, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x44, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x2a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x29, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x30, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x59, 0x0a, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x2c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x2b, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x94, 0x02, 0x0a, 0x2c, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x8f, 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x36, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x4e, 0x0a, 0x2a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x58, 0x0a, 0x2f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xb1, 0x03, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x7d, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x51, 0x0a, 0x2b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x22, 0x41, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x6b, 0x0a, 0x1d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x66, 0x0a, 0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x4e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x4e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x55, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x55, 0x70, 0x22, 0x6b, 0x0a, 0x23, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x24, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x43, 0x50, 0x55, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x43, 0x50, 0x55, 0x22, 0x98, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x44, 0x69, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x44, 0x69, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x34, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x60, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x37, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x64, 0x6f, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x64, 0x64, 0x6f, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x69, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x64, 0x6f, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x64, 0x64, 0x6f, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x3b, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x3a, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xb3, 0x02, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x53, 0x53, 0x48, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x61, 0x73, 0x53, 0x53, 0x48, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x43, 0x0a, 0x1d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x6b, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x8d, 0x01, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x59, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x60, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x1c, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x57, 0x0a, 0x09, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x1f, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xdb, 0x01, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x0c, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x5d, 0x0a, 0x0b, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x22, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf3, 0x01, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x11, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x69, 0x0a, 0x0f, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x35, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xc8, 0x02, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xd4, 0x01, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x50, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x50, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0xd1, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x50, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x50, 0x73, 0x22, 0x36, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x2f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xde, 0x03, 0x0a, 0x30, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0xd0, 0x02, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x50, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x50, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x3b, 0x0a, 0x21, 0x43, 0x6f, 0x70, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x23, 0x43, 0x6f, 0x70, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x26, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x19, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x1d, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xcb, 0x01, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x5a, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x43, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x4f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x32, 0xca, 0x2e, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x19, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x24, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x51, 0x0a, 0x19, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x11, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6b, 0x0a, 0x23, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x22, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x2a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x29, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x25, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x24, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6b, 0x0a, 0x23, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x27, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6d, 0x0a, 0x24, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x71, 0x0a, 0x1c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x16, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x28, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x33, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x1a, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x57, 0x0a, 0x1c, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x4f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_service_node_proto_rawDescOnce sync.Once file_service_node_proto_rawDescData = file_service_node_proto_rawDesc ) func file_service_node_proto_rawDescGZIP() []byte { file_service_node_proto_rawDescOnce.Do(func() { file_service_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_proto_rawDescData) }) return file_service_node_proto_rawDescData } var file_service_node_proto_msgTypes = make([]protoimpl.MessageInfo, 113) var file_service_node_proto_goTypes = []interface{}{ (*CreateNodeRequest)(nil), // 0: pb.CreateNodeRequest (*CreateNodeResponse)(nil), // 1: pb.CreateNodeResponse (*RegisterClusterNodeRequest)(nil), // 2: pb.RegisterClusterNodeRequest (*RegisterClusterNodeResponse)(nil), // 3: pb.RegisterClusterNodeResponse (*CountAllEnabledNodesRequest)(nil), // 4: pb.CountAllEnabledNodesRequest (*ListEnabledNodesMatchRequest)(nil), // 5: pb.ListEnabledNodesMatchRequest (*ListEnabledNodesMatchResponse)(nil), // 6: pb.ListEnabledNodesMatchResponse (*FindAllEnabledNodesWithNodeClusterIdRequest)(nil), // 7: pb.FindAllEnabledNodesWithNodeClusterIdRequest (*FindAllEnabledNodesWithNodeClusterIdResponse)(nil), // 8: pb.FindAllEnabledNodesWithNodeClusterIdResponse (*DeleteNodeRequest)(nil), // 9: pb.DeleteNodeRequest (*DeleteNodeFromNodeClusterRequest)(nil), // 10: pb.DeleteNodeFromNodeClusterRequest (*UpdateNodeRequest)(nil), // 11: pb.UpdateNodeRequest (*FindEnabledNodeRequest)(nil), // 12: pb.FindEnabledNodeRequest (*FindEnabledNodeResponse)(nil), // 13: pb.FindEnabledNodeResponse (*FindEnabledBasicNodeRequest)(nil), // 14: pb.FindEnabledBasicNodeRequest (*FindEnabledBasicNodeResponse)(nil), // 15: pb.FindEnabledBasicNodeResponse (*FindCurrentNodeConfigRequest)(nil), // 16: pb.FindCurrentNodeConfigRequest (*FindCurrentNodeConfigResponse)(nil), // 17: pb.FindCurrentNodeConfigResponse (*NodeStreamMessage)(nil), // 18: pb.NodeStreamMessage (*UpdateNodeStatusRequest)(nil), // 19: pb.UpdateNodeStatusRequest (*CountAllEnabledNodesMatchRequest)(nil), // 20: pb.CountAllEnabledNodesMatchRequest (*UpdateNodeIsInstalledRequest)(nil), // 21: pb.UpdateNodeIsInstalledRequest (*InstallNodeRequest)(nil), // 22: pb.InstallNodeRequest (*InstallNodeResponse)(nil), // 23: pb.InstallNodeResponse (*UpgradeNodeRequest)(nil), // 24: pb.UpgradeNodeRequest (*UpgradeNodeResponse)(nil), // 25: pb.UpgradeNodeResponse (*StartNodeRequest)(nil), // 26: pb.StartNodeRequest (*StartNodeResponse)(nil), // 27: pb.StartNodeResponse (*StopNodeRequest)(nil), // 28: pb.StopNodeRequest (*StopNodeResponse)(nil), // 29: pb.StopNodeResponse (*UninstallNodeRequest)(nil), // 30: pb.UninstallNodeRequest (*UninstallNodeResponse)(nil), // 31: pb.UninstallNodeResponse (*UpdateNodeConnectedAPINodesRequest)(nil), // 32: pb.UpdateNodeConnectedAPINodesRequest (*CountAllEnabledNodesWithNodeGrantIdRequest)(nil), // 33: pb.CountAllEnabledNodesWithNodeGrantIdRequest (*FindAllEnabledNodesWithNodeGrantIdRequest)(nil), // 34: pb.FindAllEnabledNodesWithNodeGrantIdRequest (*FindAllEnabledNodesWithNodeGrantIdResponse)(nil), // 35: pb.FindAllEnabledNodesWithNodeGrantIdResponse (*FindAllNotInstalledNodesWithNodeClusterIdRequest)(nil), // 36: pb.FindAllNotInstalledNodesWithNodeClusterIdRequest (*FindAllNotInstalledNodesWithNodeClusterIdResponse)(nil), // 37: pb.FindAllNotInstalledNodesWithNodeClusterIdResponse (*CountAllNotInstalledNodesWithNodeClusterIdRequest)(nil), // 38: pb.CountAllNotInstalledNodesWithNodeClusterIdRequest (*CountAllUpgradeNodesWithNodeClusterIdRequest)(nil), // 39: pb.CountAllUpgradeNodesWithNodeClusterIdRequest (*FindAllUpgradeNodesWithNodeClusterIdRequest)(nil), // 40: pb.FindAllUpgradeNodesWithNodeClusterIdRequest (*FindAllUpgradeNodesWithNodeClusterIdResponse)(nil), // 41: pb.FindAllUpgradeNodesWithNodeClusterIdResponse (*FindNodeInstallStatusRequest)(nil), // 42: pb.FindNodeInstallStatusRequest (*FindNodeInstallStatusResponse)(nil), // 43: pb.FindNodeInstallStatusResponse (*UpdateNodeLoginRequest)(nil), // 44: pb.UpdateNodeLoginRequest (*CountAllEnabledNodesWithNodeGroupIdRequest)(nil), // 45: pb.CountAllEnabledNodesWithNodeGroupIdRequest (*FindAllEnabledNodesDNSWithNodeClusterIdRequest)(nil), // 46: pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest (*FindAllEnabledNodesDNSWithNodeClusterIdResponse)(nil), // 47: pb.FindAllEnabledNodesDNSWithNodeClusterIdResponse (*NodeDNSInfo)(nil), // 48: pb.NodeDNSInfo (*FindEnabledNodeDNSRequest)(nil), // 49: pb.FindEnabledNodeDNSRequest (*FindEnabledNodeDNSResponse)(nil), // 50: pb.FindEnabledNodeDNSResponse (*UpdateNodeDNSRequest)(nil), // 51: pb.UpdateNodeDNSRequest (*CountAllEnabledNodesWithNodeRegionIdRequest)(nil), // 52: pb.CountAllEnabledNodesWithNodeRegionIdRequest (*FindEnabledNodesWithIdsRequest)(nil), // 53: pb.FindEnabledNodesWithIdsRequest (*FindEnabledNodesWithIdsResponse)(nil), // 54: pb.FindEnabledNodesWithIdsResponse (*CheckNodeLatestVersionRequest)(nil), // 55: pb.CheckNodeLatestVersionRequest (*CheckNodeLatestVersionResponse)(nil), // 56: pb.CheckNodeLatestVersionResponse (*UpdateNodeUpRequest)(nil), // 57: pb.UpdateNodeUpRequest (*DownloadNodeInstallationFileRequest)(nil), // 58: pb.DownloadNodeInstallationFileRequest (*DownloadNodeInstallationFileResponse)(nil), // 59: pb.DownloadNodeInstallationFileResponse (*UpdateNodeSystemRequest)(nil), // 60: pb.UpdateNodeSystemRequest (*UpdateNodeCacheRequest)(nil), // 61: pb.UpdateNodeCacheRequest (*FindNodeLevelInfoRequest)(nil), // 62: pb.FindNodeLevelInfoRequest (*FindNodeLevelInfoResponse)(nil), // 63: pb.FindNodeLevelInfoResponse (*FindNodeDNSResolverRequest)(nil), // 64: pb.FindNodeDNSResolverRequest (*FindNodeDNSResolverResponse)(nil), // 65: pb.FindNodeDNSResolverResponse (*UpdateNodeDNSResolverRequest)(nil), // 66: pb.UpdateNodeDNSResolverRequest (*FindNodeDDoSProtectionRequest)(nil), // 67: pb.FindNodeDDoSProtectionRequest (*FindNodeDDoSProtectionResponse)(nil), // 68: pb.FindNodeDDoSProtectionResponse (*UpdateNodeDDoSProtectionRequest)(nil), // 69: pb.UpdateNodeDDoSProtectionRequest (*FindNodeGlobalServerConfigRequest)(nil), // 70: pb.FindNodeGlobalServerConfigRequest (*FindNodeGlobalServerConfigResponse)(nil), // 71: pb.FindNodeGlobalServerConfigResponse (*FindEnabledNodeConfigInfoRequest)(nil), // 72: pb.FindEnabledNodeConfigInfoRequest (*FindEnabledNodeConfigInfoResponse)(nil), // 73: pb.FindEnabledNodeConfigInfoResponse (*CountAllNodeRegionInfoRequest)(nil), // 74: pb.CountAllNodeRegionInfoRequest (*ListNodeRegionInfoRequest)(nil), // 75: pb.ListNodeRegionInfoRequest (*ListNodeRegionInfoResponse)(nil), // 76: pb.ListNodeRegionInfoResponse (*UpdateNodeRegionInfoRequest)(nil), // 77: pb.UpdateNodeRegionInfoRequest (*FindNodeAPIConfigRequest)(nil), // 78: pb.FindNodeAPIConfigRequest (*FindNodeAPIConfigResponse)(nil), // 79: pb.FindNodeAPIConfigResponse (*UpdateNodeAPIConfigRequest)(nil), // 80: pb.UpdateNodeAPIConfigRequest (*FindNodeUAMPoliciesRequest)(nil), // 81: pb.FindNodeUAMPoliciesRequest (*FindNodeUAMPoliciesResponse)(nil), // 82: pb.FindNodeUAMPoliciesResponse (*FindNodeHTTPCCPoliciesRequest)(nil), // 83: pb.FindNodeHTTPCCPoliciesRequest (*FindNodeHTTPCCPoliciesResponse)(nil), // 84: pb.FindNodeHTTPCCPoliciesResponse (*FindNodeHTTP3PoliciesRequest)(nil), // 85: pb.FindNodeHTTP3PoliciesRequest (*FindNodeHTTP3PoliciesResponse)(nil), // 86: pb.FindNodeHTTP3PoliciesResponse (*FindNodeHTTPPagesPoliciesRequest)(nil), // 87: pb.FindNodeHTTPPagesPoliciesRequest (*FindNodeHTTPPagesPoliciesResponse)(nil), // 88: pb.FindNodeHTTPPagesPoliciesResponse (*FindNodeScheduleInfoRequest)(nil), // 89: pb.FindNodeScheduleInfoRequest (*FindNodeScheduleInfoResponse)(nil), // 90: pb.FindNodeScheduleInfoResponse (*UpdateNodeScheduleInfoRequest)(nil), // 91: pb.UpdateNodeScheduleInfoRequest (*ResetNodeActionStatusRequest)(nil), // 92: pb.ResetNodeActionStatusRequest (*FindAllNodeScheduleInfoWithNodeClusterIdRequest)(nil), // 93: pb.FindAllNodeScheduleInfoWithNodeClusterIdRequest (*FindAllNodeScheduleInfoWithNodeClusterIdResponse)(nil), // 94: pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse (*CopyNodeActionsToNodeGroupRequest)(nil), // 95: pb.CopyNodeActionsToNodeGroupRequest (*CopyNodeActionsToNodeClusterRequest)(nil), // 96: pb.CopyNodeActionsToNodeClusterRequest (*FindNodeTOAConfigRequest)(nil), // 97: pb.FindNodeTOAConfigRequest (*FindNodeTOAConfigResponse)(nil), // 98: pb.FindNodeTOAConfigResponse (*FindNodeNetworkSecurityPolicyRequest)(nil), // 99: pb.FindNodeNetworkSecurityPolicyRequest (*FindNodeNetworkSecurityPolicyResponse)(nil), // 100: pb.FindNodeNetworkSecurityPolicyResponse (*FindNodeWebPPoliciesRequest)(nil), // 101: pb.FindNodeWebPPoliciesRequest (*FindNodeWebPPoliciesResponse)(nil), // 102: pb.FindNodeWebPPoliciesResponse (*UpdateNodeIsOnRequest)(nil), // 103: pb.UpdateNodeIsOnRequest (*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade)(nil), // 104: pb.FindAllUpgradeNodesWithNodeClusterIdResponse.NodeUpgrade (*ListNodeRegionInfoResponse_Info)(nil), // 105: pb.ListNodeRegionInfoResponse.Info (*FindNodeUAMPoliciesResponse_UAMPolicy)(nil), // 106: pb.FindNodeUAMPoliciesResponse.UAMPolicy (*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy)(nil), // 107: pb.FindNodeHTTPCCPoliciesResponse.HTTPCCPolicy (*FindNodeHTTP3PoliciesResponse_HTTP3Policy)(nil), // 108: pb.FindNodeHTTP3PoliciesResponse.HTTP3Policy (*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy)(nil), // 109: pb.FindNodeHTTPPagesPoliciesResponse.HTTPPagesPolicy (*FindNodeScheduleInfoResponse_ScheduleInfo)(nil), // 110: pb.FindNodeScheduleInfoResponse.ScheduleInfo (*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo)(nil), // 111: pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse.ScheduleInfo (*FindNodeWebPPoliciesResponse_WebPPolicy)(nil), // 112: pb.FindNodeWebPPoliciesResponse.WebPPolicy (*NodeLogin)(nil), // 113: pb.NodeLogin (*Node)(nil), // 114: pb.Node (*BasicNode)(nil), // 115: pb.BasicNode (*NodeInstallStatus)(nil), // 116: pb.NodeInstallStatus (*DNSRoute)(nil), // 117: pb.DNSRoute (*SizeCapacity)(nil), // 118: pb.SizeCapacity (*NodeRegion)(nil), // 119: pb.NodeRegion (*NodeCluster)(nil), // 120: pb.NodeCluster (*RPCCountResponse)(nil), // 121: pb.RPCCountResponse (*RPCSuccess)(nil), // 122: pb.RPCSuccess } var file_service_node_proto_depIdxs = []int32{ 113, // 0: pb.CreateNodeRequest.nodeLogin:type_name -> pb.NodeLogin 114, // 1: pb.ListEnabledNodesMatchResponse.nodes:type_name -> pb.Node 114, // 2: pb.FindAllEnabledNodesWithNodeClusterIdResponse.nodes:type_name -> pb.Node 114, // 3: pb.FindEnabledNodeResponse.node:type_name -> pb.Node 115, // 4: pb.FindEnabledBasicNodeResponse.node:type_name -> pb.BasicNode 114, // 5: pb.FindAllEnabledNodesWithNodeGrantIdResponse.nodes:type_name -> pb.Node 114, // 6: pb.FindAllNotInstalledNodesWithNodeClusterIdResponse.nodes:type_name -> pb.Node 104, // 7: pb.FindAllUpgradeNodesWithNodeClusterIdResponse.nodes:type_name -> pb.FindAllUpgradeNodesWithNodeClusterIdResponse.NodeUpgrade 116, // 8: pb.FindNodeInstallStatusResponse.installStatus:type_name -> pb.NodeInstallStatus 113, // 9: pb.UpdateNodeLoginRequest.nodeLogin:type_name -> pb.NodeLogin 48, // 10: pb.FindAllEnabledNodesDNSWithNodeClusterIdResponse.nodes:type_name -> pb.NodeDNSInfo 117, // 11: pb.NodeDNSInfo.routes:type_name -> pb.DNSRoute 48, // 12: pb.FindEnabledNodeDNSResponse.node:type_name -> pb.NodeDNSInfo 114, // 13: pb.FindEnabledNodesWithIdsResponse.nodes:type_name -> pb.Node 118, // 14: pb.UpdateNodeCacheRequest.maxCacheDiskCapacity:type_name -> pb.SizeCapacity 118, // 15: pb.UpdateNodeCacheRequest.maxCacheMemoryCapacity:type_name -> pb.SizeCapacity 105, // 16: pb.ListNodeRegionInfoResponse.infoList:type_name -> pb.ListNodeRegionInfoResponse.Info 106, // 17: pb.FindNodeUAMPoliciesResponse.uamPolicies:type_name -> pb.FindNodeUAMPoliciesResponse.UAMPolicy 107, // 18: pb.FindNodeHTTPCCPoliciesResponse.httpCCPolicies:type_name -> pb.FindNodeHTTPCCPoliciesResponse.HTTPCCPolicy 108, // 19: pb.FindNodeHTTP3PoliciesResponse.http3Policies:type_name -> pb.FindNodeHTTP3PoliciesResponse.HTTP3Policy 109, // 20: pb.FindNodeHTTPPagesPoliciesResponse.httpPagesPolicies:type_name -> pb.FindNodeHTTPPagesPoliciesResponse.HTTPPagesPolicy 110, // 21: pb.FindNodeScheduleInfoResponse.scheduleInfo:type_name -> pb.FindNodeScheduleInfoResponse.ScheduleInfo 111, // 22: pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse.nodes:type_name -> pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse.ScheduleInfo 112, // 23: pb.FindNodeWebPPoliciesResponse.webPPolicies:type_name -> pb.FindNodeWebPPoliciesResponse.WebPPolicy 114, // 24: pb.FindAllUpgradeNodesWithNodeClusterIdResponse.NodeUpgrade.node:type_name -> pb.Node 119, // 25: pb.ListNodeRegionInfoResponse.Info.nodeRegion:type_name -> pb.NodeRegion 120, // 26: pb.ListNodeRegionInfoResponse.Info.nodeCluster:type_name -> pb.NodeCluster 0, // 27: pb.NodeService.createNode:input_type -> pb.CreateNodeRequest 2, // 28: pb.NodeService.registerClusterNode:input_type -> pb.RegisterClusterNodeRequest 4, // 29: pb.NodeService.countAllEnabledNodes:input_type -> pb.CountAllEnabledNodesRequest 20, // 30: pb.NodeService.countAllEnabledNodesMatch:input_type -> pb.CountAllEnabledNodesMatchRequest 5, // 31: pb.NodeService.listEnabledNodesMatch:input_type -> pb.ListEnabledNodesMatchRequest 7, // 32: pb.NodeService.findAllEnabledNodesWithNodeClusterId:input_type -> pb.FindAllEnabledNodesWithNodeClusterIdRequest 9, // 33: pb.NodeService.deleteNode:input_type -> pb.DeleteNodeRequest 10, // 34: pb.NodeService.deleteNodeFromNodeCluster:input_type -> pb.DeleteNodeFromNodeClusterRequest 11, // 35: pb.NodeService.updateNode:input_type -> pb.UpdateNodeRequest 12, // 36: pb.NodeService.findEnabledNode:input_type -> pb.FindEnabledNodeRequest 14, // 37: pb.NodeService.findEnabledBasicNode:input_type -> pb.FindEnabledBasicNodeRequest 16, // 38: pb.NodeService.findCurrentNodeConfig:input_type -> pb.FindCurrentNodeConfigRequest 18, // 39: pb.NodeService.nodeStream:input_type -> pb.NodeStreamMessage 18, // 40: pb.NodeService.sendCommandToNode:input_type -> pb.NodeStreamMessage 19, // 41: pb.NodeService.updateNodeStatus:input_type -> pb.UpdateNodeStatusRequest 21, // 42: pb.NodeService.updateNodeIsInstalled:input_type -> pb.UpdateNodeIsInstalledRequest 22, // 43: pb.NodeService.installNode:input_type -> pb.InstallNodeRequest 24, // 44: pb.NodeService.upgradeNode:input_type -> pb.UpgradeNodeRequest 26, // 45: pb.NodeService.startNode:input_type -> pb.StartNodeRequest 28, // 46: pb.NodeService.stopNode:input_type -> pb.StopNodeRequest 30, // 47: pb.NodeService.uninstallNode:input_type -> pb.UninstallNodeRequest 32, // 48: pb.NodeService.updateNodeConnectedAPINodes:input_type -> pb.UpdateNodeConnectedAPINodesRequest 33, // 49: pb.NodeService.countAllEnabledNodesWithNodeGrantId:input_type -> pb.CountAllEnabledNodesWithNodeGrantIdRequest 34, // 50: pb.NodeService.findAllEnabledNodesWithNodeGrantId:input_type -> pb.FindAllEnabledNodesWithNodeGrantIdRequest 38, // 51: pb.NodeService.countAllNotInstalledNodesWithNodeClusterId:input_type -> pb.CountAllNotInstalledNodesWithNodeClusterIdRequest 36, // 52: pb.NodeService.findAllNotInstalledNodesWithNodeClusterId:input_type -> pb.FindAllNotInstalledNodesWithNodeClusterIdRequest 39, // 53: pb.NodeService.countAllUpgradeNodesWithNodeClusterId:input_type -> pb.CountAllUpgradeNodesWithNodeClusterIdRequest 40, // 54: pb.NodeService.findAllUpgradeNodesWithNodeClusterId:input_type -> pb.FindAllUpgradeNodesWithNodeClusterIdRequest 42, // 55: pb.NodeService.findNodeInstallStatus:input_type -> pb.FindNodeInstallStatusRequest 44, // 56: pb.NodeService.updateNodeLogin:input_type -> pb.UpdateNodeLoginRequest 45, // 57: pb.NodeService.countAllEnabledNodesWithNodeGroupId:input_type -> pb.CountAllEnabledNodesWithNodeGroupIdRequest 46, // 58: pb.NodeService.findAllEnabledNodesDNSWithNodeClusterId:input_type -> pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest 49, // 59: pb.NodeService.findEnabledNodeDNS:input_type -> pb.FindEnabledNodeDNSRequest 51, // 60: pb.NodeService.updateNodeDNS:input_type -> pb.UpdateNodeDNSRequest 52, // 61: pb.NodeService.countAllEnabledNodesWithNodeRegionId:input_type -> pb.CountAllEnabledNodesWithNodeRegionIdRequest 53, // 62: pb.NodeService.findEnabledNodesWithIds:input_type -> pb.FindEnabledNodesWithIdsRequest 55, // 63: pb.NodeService.checkNodeLatestVersion:input_type -> pb.CheckNodeLatestVersionRequest 57, // 64: pb.NodeService.updateNodeUp:input_type -> pb.UpdateNodeUpRequest 58, // 65: pb.NodeService.downloadNodeInstallationFile:input_type -> pb.DownloadNodeInstallationFileRequest 60, // 66: pb.NodeService.updateNodeSystem:input_type -> pb.UpdateNodeSystemRequest 61, // 67: pb.NodeService.updateNodeCache:input_type -> pb.UpdateNodeCacheRequest 62, // 68: pb.NodeService.findNodeLevelInfo:input_type -> pb.FindNodeLevelInfoRequest 64, // 69: pb.NodeService.findNodeDNSResolver:input_type -> pb.FindNodeDNSResolverRequest 66, // 70: pb.NodeService.updateNodeDNSResolver:input_type -> pb.UpdateNodeDNSResolverRequest 67, // 71: pb.NodeService.findNodeDDoSProtection:input_type -> pb.FindNodeDDoSProtectionRequest 69, // 72: pb.NodeService.updateNodeDDoSProtection:input_type -> pb.UpdateNodeDDoSProtectionRequest 70, // 73: pb.NodeService.findNodeGlobalServerConfig:input_type -> pb.FindNodeGlobalServerConfigRequest 72, // 74: pb.NodeService.findEnabledNodeConfigInfo:input_type -> pb.FindEnabledNodeConfigInfoRequest 74, // 75: pb.NodeService.countAllNodeRegionInfo:input_type -> pb.CountAllNodeRegionInfoRequest 75, // 76: pb.NodeService.listNodeRegionInfo:input_type -> pb.ListNodeRegionInfoRequest 77, // 77: pb.NodeService.updateNodeRegionInfo:input_type -> pb.UpdateNodeRegionInfoRequest 78, // 78: pb.NodeService.findNodeAPIConfig:input_type -> pb.FindNodeAPIConfigRequest 80, // 79: pb.NodeService.updateNodeAPIConfig:input_type -> pb.UpdateNodeAPIConfigRequest 81, // 80: pb.NodeService.findNodeUAMPolicies:input_type -> pb.FindNodeUAMPoliciesRequest 83, // 81: pb.NodeService.findNodeHTTPCCPolicies:input_type -> pb.FindNodeHTTPCCPoliciesRequest 85, // 82: pb.NodeService.findNodeHTTP3Policies:input_type -> pb.FindNodeHTTP3PoliciesRequest 87, // 83: pb.NodeService.findNodeHTTPPagesPolicies:input_type -> pb.FindNodeHTTPPagesPoliciesRequest 89, // 84: pb.NodeService.findNodeScheduleInfo:input_type -> pb.FindNodeScheduleInfoRequest 91, // 85: pb.NodeService.updateNodeScheduleInfo:input_type -> pb.UpdateNodeScheduleInfoRequest 92, // 86: pb.NodeService.resetNodeActionStatus:input_type -> pb.ResetNodeActionStatusRequest 93, // 87: pb.NodeService.findAllNodeScheduleInfoWithNodeClusterId:input_type -> pb.FindAllNodeScheduleInfoWithNodeClusterIdRequest 95, // 88: pb.NodeService.copyNodeActionsToNodeGroup:input_type -> pb.CopyNodeActionsToNodeGroupRequest 96, // 89: pb.NodeService.copyNodeActionsToNodeCluster:input_type -> pb.CopyNodeActionsToNodeClusterRequest 97, // 90: pb.NodeService.findNodeTOAConfig:input_type -> pb.FindNodeTOAConfigRequest 99, // 91: pb.NodeService.findNodeNetworkSecurityPolicy:input_type -> pb.FindNodeNetworkSecurityPolicyRequest 101, // 92: pb.NodeService.findNodeWebPPolicies:input_type -> pb.FindNodeWebPPoliciesRequest 103, // 93: pb.NodeService.updateNodeIsOn:input_type -> pb.UpdateNodeIsOnRequest 1, // 94: pb.NodeService.createNode:output_type -> pb.CreateNodeResponse 3, // 95: pb.NodeService.registerClusterNode:output_type -> pb.RegisterClusterNodeResponse 121, // 96: pb.NodeService.countAllEnabledNodes:output_type -> pb.RPCCountResponse 121, // 97: pb.NodeService.countAllEnabledNodesMatch:output_type -> pb.RPCCountResponse 6, // 98: pb.NodeService.listEnabledNodesMatch:output_type -> pb.ListEnabledNodesMatchResponse 8, // 99: pb.NodeService.findAllEnabledNodesWithNodeClusterId:output_type -> pb.FindAllEnabledNodesWithNodeClusterIdResponse 122, // 100: pb.NodeService.deleteNode:output_type -> pb.RPCSuccess 122, // 101: pb.NodeService.deleteNodeFromNodeCluster:output_type -> pb.RPCSuccess 122, // 102: pb.NodeService.updateNode:output_type -> pb.RPCSuccess 13, // 103: pb.NodeService.findEnabledNode:output_type -> pb.FindEnabledNodeResponse 15, // 104: pb.NodeService.findEnabledBasicNode:output_type -> pb.FindEnabledBasicNodeResponse 17, // 105: pb.NodeService.findCurrentNodeConfig:output_type -> pb.FindCurrentNodeConfigResponse 18, // 106: pb.NodeService.nodeStream:output_type -> pb.NodeStreamMessage 18, // 107: pb.NodeService.sendCommandToNode:output_type -> pb.NodeStreamMessage 122, // 108: pb.NodeService.updateNodeStatus:output_type -> pb.RPCSuccess 122, // 109: pb.NodeService.updateNodeIsInstalled:output_type -> pb.RPCSuccess 23, // 110: pb.NodeService.installNode:output_type -> pb.InstallNodeResponse 25, // 111: pb.NodeService.upgradeNode:output_type -> pb.UpgradeNodeResponse 27, // 112: pb.NodeService.startNode:output_type -> pb.StartNodeResponse 29, // 113: pb.NodeService.stopNode:output_type -> pb.StopNodeResponse 31, // 114: pb.NodeService.uninstallNode:output_type -> pb.UninstallNodeResponse 122, // 115: pb.NodeService.updateNodeConnectedAPINodes:output_type -> pb.RPCSuccess 121, // 116: pb.NodeService.countAllEnabledNodesWithNodeGrantId:output_type -> pb.RPCCountResponse 35, // 117: pb.NodeService.findAllEnabledNodesWithNodeGrantId:output_type -> pb.FindAllEnabledNodesWithNodeGrantIdResponse 121, // 118: pb.NodeService.countAllNotInstalledNodesWithNodeClusterId:output_type -> pb.RPCCountResponse 37, // 119: pb.NodeService.findAllNotInstalledNodesWithNodeClusterId:output_type -> pb.FindAllNotInstalledNodesWithNodeClusterIdResponse 121, // 120: pb.NodeService.countAllUpgradeNodesWithNodeClusterId:output_type -> pb.RPCCountResponse 41, // 121: pb.NodeService.findAllUpgradeNodesWithNodeClusterId:output_type -> pb.FindAllUpgradeNodesWithNodeClusterIdResponse 43, // 122: pb.NodeService.findNodeInstallStatus:output_type -> pb.FindNodeInstallStatusResponse 122, // 123: pb.NodeService.updateNodeLogin:output_type -> pb.RPCSuccess 121, // 124: pb.NodeService.countAllEnabledNodesWithNodeGroupId:output_type -> pb.RPCCountResponse 47, // 125: pb.NodeService.findAllEnabledNodesDNSWithNodeClusterId:output_type -> pb.FindAllEnabledNodesDNSWithNodeClusterIdResponse 50, // 126: pb.NodeService.findEnabledNodeDNS:output_type -> pb.FindEnabledNodeDNSResponse 122, // 127: pb.NodeService.updateNodeDNS:output_type -> pb.RPCSuccess 121, // 128: pb.NodeService.countAllEnabledNodesWithNodeRegionId:output_type -> pb.RPCCountResponse 54, // 129: pb.NodeService.findEnabledNodesWithIds:output_type -> pb.FindEnabledNodesWithIdsResponse 56, // 130: pb.NodeService.checkNodeLatestVersion:output_type -> pb.CheckNodeLatestVersionResponse 122, // 131: pb.NodeService.updateNodeUp:output_type -> pb.RPCSuccess 59, // 132: pb.NodeService.downloadNodeInstallationFile:output_type -> pb.DownloadNodeInstallationFileResponse 122, // 133: pb.NodeService.updateNodeSystem:output_type -> pb.RPCSuccess 122, // 134: pb.NodeService.updateNodeCache:output_type -> pb.RPCSuccess 63, // 135: pb.NodeService.findNodeLevelInfo:output_type -> pb.FindNodeLevelInfoResponse 65, // 136: pb.NodeService.findNodeDNSResolver:output_type -> pb.FindNodeDNSResolverResponse 122, // 137: pb.NodeService.updateNodeDNSResolver:output_type -> pb.RPCSuccess 68, // 138: pb.NodeService.findNodeDDoSProtection:output_type -> pb.FindNodeDDoSProtectionResponse 122, // 139: pb.NodeService.updateNodeDDoSProtection:output_type -> pb.RPCSuccess 71, // 140: pb.NodeService.findNodeGlobalServerConfig:output_type -> pb.FindNodeGlobalServerConfigResponse 73, // 141: pb.NodeService.findEnabledNodeConfigInfo:output_type -> pb.FindEnabledNodeConfigInfoResponse 121, // 142: pb.NodeService.countAllNodeRegionInfo:output_type -> pb.RPCCountResponse 76, // 143: pb.NodeService.listNodeRegionInfo:output_type -> pb.ListNodeRegionInfoResponse 122, // 144: pb.NodeService.updateNodeRegionInfo:output_type -> pb.RPCSuccess 79, // 145: pb.NodeService.findNodeAPIConfig:output_type -> pb.FindNodeAPIConfigResponse 122, // 146: pb.NodeService.updateNodeAPIConfig:output_type -> pb.RPCSuccess 82, // 147: pb.NodeService.findNodeUAMPolicies:output_type -> pb.FindNodeUAMPoliciesResponse 84, // 148: pb.NodeService.findNodeHTTPCCPolicies:output_type -> pb.FindNodeHTTPCCPoliciesResponse 86, // 149: pb.NodeService.findNodeHTTP3Policies:output_type -> pb.FindNodeHTTP3PoliciesResponse 88, // 150: pb.NodeService.findNodeHTTPPagesPolicies:output_type -> pb.FindNodeHTTPPagesPoliciesResponse 90, // 151: pb.NodeService.findNodeScheduleInfo:output_type -> pb.FindNodeScheduleInfoResponse 122, // 152: pb.NodeService.updateNodeScheduleInfo:output_type -> pb.RPCSuccess 122, // 153: pb.NodeService.resetNodeActionStatus:output_type -> pb.RPCSuccess 94, // 154: pb.NodeService.findAllNodeScheduleInfoWithNodeClusterId:output_type -> pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse 122, // 155: pb.NodeService.copyNodeActionsToNodeGroup:output_type -> pb.RPCSuccess 122, // 156: pb.NodeService.copyNodeActionsToNodeCluster:output_type -> pb.RPCSuccess 98, // 157: pb.NodeService.findNodeTOAConfig:output_type -> pb.FindNodeTOAConfigResponse 100, // 158: pb.NodeService.findNodeNetworkSecurityPolicy:output_type -> pb.FindNodeNetworkSecurityPolicyResponse 102, // 159: pb.NodeService.findNodeWebPPolicies:output_type -> pb.FindNodeWebPPoliciesResponse 122, // 160: pb.NodeService.updateNodeIsOn:output_type -> pb.RPCSuccess 94, // [94:161] is the sub-list for method output_type 27, // [27:94] is the sub-list for method input_type 27, // [27:27] is the sub-list for extension type_name 27, // [27:27] is the sub-list for extension extendee 0, // [0:27] is the sub-list for field type_name } func init() { file_service_node_proto_init() } func file_service_node_proto_init() { if File_service_node_proto != nil { return } file_models_model_node_proto_init() file_models_model_node_login_proto_init() file_models_model_node_install_status_proto_init() file_models_model_dns_route_proto_init() file_models_model_size_capacity_proto_init() file_models_model_node_cluster_proto_init() file_models_model_node_region_proto_init() file_models_rpc_messages_proto_init() if !protoimpl.UnsafeEnabled { file_service_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterClusterNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterClusterNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledNodesMatchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledNodesMatchResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodesWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodesWithNodeClusterIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteNodeFromNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledBasicNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledBasicNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindCurrentNodeConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindCurrentNodeConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeStreamMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeStatusRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodesMatchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeIsInstalledRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstallNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstallNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpgradeNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpgradeNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UninstallNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UninstallNodeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeConnectedAPINodesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodesWithNodeGrantIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodesWithNodeGrantIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodesWithNodeGrantIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllNotInstalledNodesWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllNotInstalledNodesWithNodeClusterIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllNotInstalledNodesWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllUpgradeNodesWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllUpgradeNodesWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllUpgradeNodesWithNodeClusterIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeInstallStatusRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeInstallStatusResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeLoginRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodesWithNodeGroupIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodesDNSWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodesDNSWithNodeClusterIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeDNSInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeDNSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeDNSResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeDNSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodesWithNodeRegionIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodesWithIdsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodesWithIdsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckNodeLatestVersionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckNodeLatestVersionResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeUpRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DownloadNodeInstallationFileRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DownloadNodeInstallationFileResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeSystemRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeCacheRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeLevelInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeLevelInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeDNSResolverRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeDNSResolverResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeDNSResolverRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeDDoSProtectionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeDDoSProtectionResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeDDoSProtectionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeGlobalServerConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeGlobalServerConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeConfigInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeConfigInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllNodeRegionInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListNodeRegionInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListNodeRegionInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeRegionInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeAPIConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeAPIConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeAPIConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeUAMPoliciesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeUAMPoliciesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTPCCPoliciesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTPCCPoliciesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTP3PoliciesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTP3PoliciesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTPPagesPoliciesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTPPagesPoliciesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeScheduleInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeScheduleInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeScheduleInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResetNodeActionStatusRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllNodeScheduleInfoWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllNodeScheduleInfoWithNodeClusterIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyNodeActionsToNodeGroupRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyNodeActionsToNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeTOAConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeTOAConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeNetworkSecurityPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeNetworkSecurityPolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeWebPPoliciesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeWebPPoliciesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeIsOnRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListNodeRegionInfoResponse_Info); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeUAMPoliciesResponse_UAMPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTP3PoliciesResponse_HTTP3Policy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeScheduleInfoResponse_ScheduleInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeWebPPoliciesResponse_WebPPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_node_proto_rawDesc, NumEnums: 0, NumMessages: 113, NumExtensions: 0, NumServices: 1, }, GoTypes: file_service_node_proto_goTypes, DependencyIndexes: file_service_node_proto_depIdxs, MessageInfos: file_service_node_proto_msgTypes, }.Build() File_service_node_proto = out.File file_service_node_proto_rawDesc = nil file_service_node_proto_goTypes = nil file_service_node_proto_depIdxs = nil }