// 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 UpdateNodeBypassMobile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NodeId       int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"`
	BypassMobile int32 `protobuf:"varint,2,opt,name=bypassMobile,proto3" json:"bypassMobile,omitempty"`
}

func (x *UpdateNodeBypassMobile) Reset() {
	*x = UpdateNodeBypassMobile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_node_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateNodeBypassMobile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateNodeBypassMobile) ProtoMessage() {}

func (x *UpdateNodeBypassMobile) 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 UpdateNodeBypassMobile.ProtoReflect.Descriptor instead.
func (*UpdateNodeBypassMobile) Descriptor() ([]byte, []int) {
	return file_service_node_proto_rawDescGZIP(), []int{104}
}

func (x *UpdateNodeBypassMobile) GetNodeId() int64 {
	if x != nil {
		return x.NodeId
	}
	return 0
}

func (x *UpdateNodeBypassMobile) GetBypassMobile() int32 {
	if x != nil {
		return x.BypassMobile
	}
	return 0
}

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[105]
		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[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 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[106]
		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[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 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[107]
		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[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 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[108]
		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[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 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[109]
		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[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 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[110]
		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[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 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[111]
		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[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 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[112]
		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[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 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[113]
		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[113]
	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, 0x22, 0x54, 0x0a,
	0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x70, 0x61, 0x73,
	0x73, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 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,
	0x22, 0x0a, 0x0c, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x62,
	0x69, 0x6c, 0x65, 0x32, 0x90, 0x2f, 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,
	0x12, 0x44, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x79,
	0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73,
	0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 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, 114)
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
	(*UpdateNodeBypassMobile)(nil),                                        // 104: pb.UpdateNodeBypassMobile
	(*FindAllUpgradeNodesWithNodeClusterIdResponse_NodeUpgrade)(nil),      // 105: pb.FindAllUpgradeNodesWithNodeClusterIdResponse.NodeUpgrade
	(*ListNodeRegionInfoResponse_Info)(nil),                               // 106: pb.ListNodeRegionInfoResponse.Info
	(*FindNodeUAMPoliciesResponse_UAMPolicy)(nil),                         // 107: pb.FindNodeUAMPoliciesResponse.UAMPolicy
	(*FindNodeHTTPCCPoliciesResponse_HTTPCCPolicy)(nil),                   // 108: pb.FindNodeHTTPCCPoliciesResponse.HTTPCCPolicy
	(*FindNodeHTTP3PoliciesResponse_HTTP3Policy)(nil),                     // 109: pb.FindNodeHTTP3PoliciesResponse.HTTP3Policy
	(*FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy)(nil),             // 110: pb.FindNodeHTTPPagesPoliciesResponse.HTTPPagesPolicy
	(*FindNodeScheduleInfoResponse_ScheduleInfo)(nil),                     // 111: pb.FindNodeScheduleInfoResponse.ScheduleInfo
	(*FindAllNodeScheduleInfoWithNodeClusterIdResponse_ScheduleInfo)(nil), // 112: pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse.ScheduleInfo
	(*FindNodeWebPPoliciesResponse_WebPPolicy)(nil),                       // 113: pb.FindNodeWebPPoliciesResponse.WebPPolicy
	(*NodeLogin)(nil),                                                     // 114: pb.NodeLogin
	(*Node)(nil),                                                          // 115: pb.Node
	(*BasicNode)(nil),                                                     // 116: pb.BasicNode
	(*NodeInstallStatus)(nil),                                             // 117: pb.NodeInstallStatus
	(*DNSRoute)(nil),                                                      // 118: pb.DNSRoute
	(*SizeCapacity)(nil),                                                  // 119: pb.SizeCapacity
	(*NodeRegion)(nil),                                                    // 120: pb.NodeRegion
	(*NodeCluster)(nil),                                                   // 121: pb.NodeCluster
	(*RPCCountResponse)(nil),                                              // 122: pb.RPCCountResponse
	(*RPCSuccess)(nil),                                                    // 123: pb.RPCSuccess
}
var file_service_node_proto_depIdxs = []int32{
	114, // 0: pb.CreateNodeRequest.nodeLogin:type_name -> pb.NodeLogin
	115, // 1: pb.ListEnabledNodesMatchResponse.nodes:type_name -> pb.Node
	115, // 2: pb.FindAllEnabledNodesWithNodeClusterIdResponse.nodes:type_name -> pb.Node
	115, // 3: pb.FindEnabledNodeResponse.node:type_name -> pb.Node
	116, // 4: pb.FindEnabledBasicNodeResponse.node:type_name -> pb.BasicNode
	115, // 5: pb.FindAllEnabledNodesWithNodeGrantIdResponse.nodes:type_name -> pb.Node
	115, // 6: pb.FindAllNotInstalledNodesWithNodeClusterIdResponse.nodes:type_name -> pb.Node
	105, // 7: pb.FindAllUpgradeNodesWithNodeClusterIdResponse.nodes:type_name -> pb.FindAllUpgradeNodesWithNodeClusterIdResponse.NodeUpgrade
	117, // 8: pb.FindNodeInstallStatusResponse.installStatus:type_name -> pb.NodeInstallStatus
	114, // 9: pb.UpdateNodeLoginRequest.nodeLogin:type_name -> pb.NodeLogin
	48,  // 10: pb.FindAllEnabledNodesDNSWithNodeClusterIdResponse.nodes:type_name -> pb.NodeDNSInfo
	118, // 11: pb.NodeDNSInfo.routes:type_name -> pb.DNSRoute
	48,  // 12: pb.FindEnabledNodeDNSResponse.node:type_name -> pb.NodeDNSInfo
	115, // 13: pb.FindEnabledNodesWithIdsResponse.nodes:type_name -> pb.Node
	119, // 14: pb.UpdateNodeCacheRequest.maxCacheDiskCapacity:type_name -> pb.SizeCapacity
	119, // 15: pb.UpdateNodeCacheRequest.maxCacheMemoryCapacity:type_name -> pb.SizeCapacity
	106, // 16: pb.ListNodeRegionInfoResponse.infoList:type_name -> pb.ListNodeRegionInfoResponse.Info
	107, // 17: pb.FindNodeUAMPoliciesResponse.uamPolicies:type_name -> pb.FindNodeUAMPoliciesResponse.UAMPolicy
	108, // 18: pb.FindNodeHTTPCCPoliciesResponse.httpCCPolicies:type_name -> pb.FindNodeHTTPCCPoliciesResponse.HTTPCCPolicy
	109, // 19: pb.FindNodeHTTP3PoliciesResponse.http3Policies:type_name -> pb.FindNodeHTTP3PoliciesResponse.HTTP3Policy
	110, // 20: pb.FindNodeHTTPPagesPoliciesResponse.httpPagesPolicies:type_name -> pb.FindNodeHTTPPagesPoliciesResponse.HTTPPagesPolicy
	111, // 21: pb.FindNodeScheduleInfoResponse.scheduleInfo:type_name -> pb.FindNodeScheduleInfoResponse.ScheduleInfo
	112, // 22: pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse.nodes:type_name -> pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse.ScheduleInfo
	113, // 23: pb.FindNodeWebPPoliciesResponse.webPPolicies:type_name -> pb.FindNodeWebPPoliciesResponse.WebPPolicy
	115, // 24: pb.FindAllUpgradeNodesWithNodeClusterIdResponse.NodeUpgrade.node:type_name -> pb.Node
	120, // 25: pb.ListNodeRegionInfoResponse.Info.nodeRegion:type_name -> pb.NodeRegion
	121, // 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
	104, // 94: pb.NodeService.updateNodeBypassMobile:input_type -> pb.UpdateNodeBypassMobile
	1,   // 95: pb.NodeService.createNode:output_type -> pb.CreateNodeResponse
	3,   // 96: pb.NodeService.registerClusterNode:output_type -> pb.RegisterClusterNodeResponse
	122, // 97: pb.NodeService.countAllEnabledNodes:output_type -> pb.RPCCountResponse
	122, // 98: pb.NodeService.countAllEnabledNodesMatch:output_type -> pb.RPCCountResponse
	6,   // 99: pb.NodeService.listEnabledNodesMatch:output_type -> pb.ListEnabledNodesMatchResponse
	8,   // 100: pb.NodeService.findAllEnabledNodesWithNodeClusterId:output_type -> pb.FindAllEnabledNodesWithNodeClusterIdResponse
	123, // 101: pb.NodeService.deleteNode:output_type -> pb.RPCSuccess
	123, // 102: pb.NodeService.deleteNodeFromNodeCluster:output_type -> pb.RPCSuccess
	123, // 103: pb.NodeService.updateNode:output_type -> pb.RPCSuccess
	13,  // 104: pb.NodeService.findEnabledNode:output_type -> pb.FindEnabledNodeResponse
	15,  // 105: pb.NodeService.findEnabledBasicNode:output_type -> pb.FindEnabledBasicNodeResponse
	17,  // 106: pb.NodeService.findCurrentNodeConfig:output_type -> pb.FindCurrentNodeConfigResponse
	18,  // 107: pb.NodeService.nodeStream:output_type -> pb.NodeStreamMessage
	18,  // 108: pb.NodeService.sendCommandToNode:output_type -> pb.NodeStreamMessage
	123, // 109: pb.NodeService.updateNodeStatus:output_type -> pb.RPCSuccess
	123, // 110: pb.NodeService.updateNodeIsInstalled:output_type -> pb.RPCSuccess
	23,  // 111: pb.NodeService.installNode:output_type -> pb.InstallNodeResponse
	25,  // 112: pb.NodeService.upgradeNode:output_type -> pb.UpgradeNodeResponse
	27,  // 113: pb.NodeService.startNode:output_type -> pb.StartNodeResponse
	29,  // 114: pb.NodeService.stopNode:output_type -> pb.StopNodeResponse
	31,  // 115: pb.NodeService.uninstallNode:output_type -> pb.UninstallNodeResponse
	123, // 116: pb.NodeService.updateNodeConnectedAPINodes:output_type -> pb.RPCSuccess
	122, // 117: pb.NodeService.countAllEnabledNodesWithNodeGrantId:output_type -> pb.RPCCountResponse
	35,  // 118: pb.NodeService.findAllEnabledNodesWithNodeGrantId:output_type -> pb.FindAllEnabledNodesWithNodeGrantIdResponse
	122, // 119: pb.NodeService.countAllNotInstalledNodesWithNodeClusterId:output_type -> pb.RPCCountResponse
	37,  // 120: pb.NodeService.findAllNotInstalledNodesWithNodeClusterId:output_type -> pb.FindAllNotInstalledNodesWithNodeClusterIdResponse
	122, // 121: pb.NodeService.countAllUpgradeNodesWithNodeClusterId:output_type -> pb.RPCCountResponse
	41,  // 122: pb.NodeService.findAllUpgradeNodesWithNodeClusterId:output_type -> pb.FindAllUpgradeNodesWithNodeClusterIdResponse
	43,  // 123: pb.NodeService.findNodeInstallStatus:output_type -> pb.FindNodeInstallStatusResponse
	123, // 124: pb.NodeService.updateNodeLogin:output_type -> pb.RPCSuccess
	122, // 125: pb.NodeService.countAllEnabledNodesWithNodeGroupId:output_type -> pb.RPCCountResponse
	47,  // 126: pb.NodeService.findAllEnabledNodesDNSWithNodeClusterId:output_type -> pb.FindAllEnabledNodesDNSWithNodeClusterIdResponse
	50,  // 127: pb.NodeService.findEnabledNodeDNS:output_type -> pb.FindEnabledNodeDNSResponse
	123, // 128: pb.NodeService.updateNodeDNS:output_type -> pb.RPCSuccess
	122, // 129: pb.NodeService.countAllEnabledNodesWithNodeRegionId:output_type -> pb.RPCCountResponse
	54,  // 130: pb.NodeService.findEnabledNodesWithIds:output_type -> pb.FindEnabledNodesWithIdsResponse
	56,  // 131: pb.NodeService.checkNodeLatestVersion:output_type -> pb.CheckNodeLatestVersionResponse
	123, // 132: pb.NodeService.updateNodeUp:output_type -> pb.RPCSuccess
	59,  // 133: pb.NodeService.downloadNodeInstallationFile:output_type -> pb.DownloadNodeInstallationFileResponse
	123, // 134: pb.NodeService.updateNodeSystem:output_type -> pb.RPCSuccess
	123, // 135: pb.NodeService.updateNodeCache:output_type -> pb.RPCSuccess
	63,  // 136: pb.NodeService.findNodeLevelInfo:output_type -> pb.FindNodeLevelInfoResponse
	65,  // 137: pb.NodeService.findNodeDNSResolver:output_type -> pb.FindNodeDNSResolverResponse
	123, // 138: pb.NodeService.updateNodeDNSResolver:output_type -> pb.RPCSuccess
	68,  // 139: pb.NodeService.findNodeDDoSProtection:output_type -> pb.FindNodeDDoSProtectionResponse
	123, // 140: pb.NodeService.updateNodeDDoSProtection:output_type -> pb.RPCSuccess
	71,  // 141: pb.NodeService.findNodeGlobalServerConfig:output_type -> pb.FindNodeGlobalServerConfigResponse
	73,  // 142: pb.NodeService.findEnabledNodeConfigInfo:output_type -> pb.FindEnabledNodeConfigInfoResponse
	122, // 143: pb.NodeService.countAllNodeRegionInfo:output_type -> pb.RPCCountResponse
	76,  // 144: pb.NodeService.listNodeRegionInfo:output_type -> pb.ListNodeRegionInfoResponse
	123, // 145: pb.NodeService.updateNodeRegionInfo:output_type -> pb.RPCSuccess
	79,  // 146: pb.NodeService.findNodeAPIConfig:output_type -> pb.FindNodeAPIConfigResponse
	123, // 147: pb.NodeService.updateNodeAPIConfig:output_type -> pb.RPCSuccess
	82,  // 148: pb.NodeService.findNodeUAMPolicies:output_type -> pb.FindNodeUAMPoliciesResponse
	84,  // 149: pb.NodeService.findNodeHTTPCCPolicies:output_type -> pb.FindNodeHTTPCCPoliciesResponse
	86,  // 150: pb.NodeService.findNodeHTTP3Policies:output_type -> pb.FindNodeHTTP3PoliciesResponse
	88,  // 151: pb.NodeService.findNodeHTTPPagesPolicies:output_type -> pb.FindNodeHTTPPagesPoliciesResponse
	90,  // 152: pb.NodeService.findNodeScheduleInfo:output_type -> pb.FindNodeScheduleInfoResponse
	123, // 153: pb.NodeService.updateNodeScheduleInfo:output_type -> pb.RPCSuccess
	123, // 154: pb.NodeService.resetNodeActionStatus:output_type -> pb.RPCSuccess
	94,  // 155: pb.NodeService.findAllNodeScheduleInfoWithNodeClusterId:output_type -> pb.FindAllNodeScheduleInfoWithNodeClusterIdResponse
	123, // 156: pb.NodeService.copyNodeActionsToNodeGroup:output_type -> pb.RPCSuccess
	123, // 157: pb.NodeService.copyNodeActionsToNodeCluster:output_type -> pb.RPCSuccess
	98,  // 158: pb.NodeService.findNodeTOAConfig:output_type -> pb.FindNodeTOAConfigResponse
	100, // 159: pb.NodeService.findNodeNetworkSecurityPolicy:output_type -> pb.FindNodeNetworkSecurityPolicyResponse
	102, // 160: pb.NodeService.findNodeWebPPolicies:output_type -> pb.FindNodeWebPPoliciesResponse
	123, // 161: pb.NodeService.updateNodeIsOn:output_type -> pb.RPCSuccess
	123, // 162: pb.NodeService.updateNodeBypassMobile:output_type -> pb.RPCSuccess
	95,  // [95:163] is the sub-list for method output_type
	27,  // [27:95] 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.(*UpdateNodeBypassMobile); 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.(*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[106].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[107].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[108].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[109].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[110].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[111].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[112].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[113].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:   114,
			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
}
