// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.19.4
// source: service_ns_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)
)

// 根据集群查找所有NS节点
type FindAllNSNodesWithNSClusterIdRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64 `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
}

func (x *FindAllNSNodesWithNSClusterIdRequest) Reset() {
	*x = FindAllNSNodesWithNSClusterIdRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindAllNSNodesWithNSClusterIdRequest) ProtoMessage() {}

func (x *FindAllNSNodesWithNSClusterIdRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindAllNSNodesWithNSClusterIdRequest.ProtoReflect.Descriptor instead.
func (*FindAllNSNodesWithNSClusterIdRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{0}
}

func (x *FindAllNSNodesWithNSClusterIdRequest) GetNsClusterId() int64 {
	if x != nil {
		return x.NsClusterId
	}
	return 0
}

type FindAllNSNodesWithNSClusterIdResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodes []*NSNode `protobuf:"bytes,1,rep,name=nsNodes,proto3" json:"nsNodes,omitempty"`
}

func (x *FindAllNSNodesWithNSClusterIdResponse) Reset() {
	*x = FindAllNSNodesWithNSClusterIdResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindAllNSNodesWithNSClusterIdResponse) ProtoMessage() {}

func (x *FindAllNSNodesWithNSClusterIdResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindAllNSNodesWithNSClusterIdResponse.ProtoReflect.Descriptor instead.
func (*FindAllNSNodesWithNSClusterIdResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{1}
}

func (x *FindAllNSNodesWithNSClusterIdResponse) GetNsNodes() []*NSNode {
	if x != nil {
		return x.NsNodes
	}
	return nil
}

// 所有可用的NS节点数量
type CountAllNSNodesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CountAllNSNodesRequest) Reset() {
	*x = CountAllNSNodesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CountAllNSNodesRequest) ProtoMessage() {}

func (x *CountAllNSNodesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CountAllNSNodesRequest.ProtoReflect.Descriptor instead.
func (*CountAllNSNodesRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{2}
}

// 计算匹配的NS节点数量
type CountAllNSNodesMatchRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId  int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,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"`
}

func (x *CountAllNSNodesMatchRequest) Reset() {
	*x = CountAllNSNodesMatchRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CountAllNSNodesMatchRequest) ProtoMessage() {}

func (x *CountAllNSNodesMatchRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CountAllNSNodesMatchRequest.ProtoReflect.Descriptor instead.
func (*CountAllNSNodesMatchRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{3}
}

func (x *CountAllNSNodesMatchRequest) GetNsClusterId() int64 {
	if x != nil {
		return x.NsClusterId
	}
	return 0
}

func (x *CountAllNSNodesMatchRequest) GetInstallState() int32 {
	if x != nil {
		return x.InstallState
	}
	return 0
}

func (x *CountAllNSNodesMatchRequest) GetActiveState() int32 {
	if x != nil {
		return x.ActiveState
	}
	return 0
}

func (x *CountAllNSNodesMatchRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

// 列出单页NS节点
type ListNSNodesMatchRequest 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"`
	NsClusterId  int64  `protobuf:"varint,3,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	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"`
}

func (x *ListNSNodesMatchRequest) Reset() {
	*x = ListNSNodesMatchRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListNSNodesMatchRequest) ProtoMessage() {}

func (x *ListNSNodesMatchRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 ListNSNodesMatchRequest.ProtoReflect.Descriptor instead.
func (*ListNSNodesMatchRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{4}
}

func (x *ListNSNodesMatchRequest) GetOffset() int64 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *ListNSNodesMatchRequest) GetSize() int64 {
	if x != nil {
		return x.Size
	}
	return 0
}

func (x *ListNSNodesMatchRequest) GetNsClusterId() int64 {
	if x != nil {
		return x.NsClusterId
	}
	return 0
}

func (x *ListNSNodesMatchRequest) GetInstallState() int32 {
	if x != nil {
		return x.InstallState
	}
	return 0
}

func (x *ListNSNodesMatchRequest) GetActiveState() int32 {
	if x != nil {
		return x.ActiveState
	}
	return 0
}

func (x *ListNSNodesMatchRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

type ListNSNodesMatchResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodes []*NSNode `protobuf:"bytes,1,rep,name=nsNodes,proto3" json:"nsNodes,omitempty"`
}

func (x *ListNSNodesMatchResponse) Reset() {
	*x = ListNSNodesMatchResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListNSNodesMatchResponse) ProtoMessage() {}

func (x *ListNSNodesMatchResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 ListNSNodesMatchResponse.ProtoReflect.Descriptor instead.
func (*ListNSNodesMatchResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{5}
}

func (x *ListNSNodesMatchResponse) GetNsNodes() []*NSNode {
	if x != nil {
		return x.NsNodes
	}
	return nil
}

// 计算需要升级的NS节点数量
type CountAllUpgradeNSNodesWithNSClusterIdRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64 `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
}

func (x *CountAllUpgradeNSNodesWithNSClusterIdRequest) Reset() {
	*x = CountAllUpgradeNSNodesWithNSClusterIdRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CountAllUpgradeNSNodesWithNSClusterIdRequest) ProtoMessage() {}

func (x *CountAllUpgradeNSNodesWithNSClusterIdRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CountAllUpgradeNSNodesWithNSClusterIdRequest.ProtoReflect.Descriptor instead.
func (*CountAllUpgradeNSNodesWithNSClusterIdRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{6}
}

func (x *CountAllUpgradeNSNodesWithNSClusterIdRequest) GetNsClusterId() int64 {
	if x != nil {
		return x.NsClusterId
	}
	return 0
}

// 创建NS节点
type CreateNSNodeRequest 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"`
}

func (x *CreateNSNodeRequest) Reset() {
	*x = CreateNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateNSNodeRequest) ProtoMessage() {}

func (x *CreateNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CreateNSNodeRequest.ProtoReflect.Descriptor instead.
func (*CreateNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{7}
}

func (x *CreateNSNodeRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateNSNodeRequest) GetNodeClusterId() int64 {
	if x != nil {
		return x.NodeClusterId
	}
	return 0
}

func (x *CreateNSNodeRequest) GetNodeLogin() *NodeLogin {
	if x != nil {
		return x.NodeLogin
	}
	return nil
}

type CreateNSNodeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *CreateNSNodeResponse) Reset() {
	*x = CreateNSNodeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateNSNodeResponse) ProtoMessage() {}

func (x *CreateNSNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CreateNSNodeResponse.ProtoReflect.Descriptor instead.
func (*CreateNSNodeResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{8}
}

func (x *CreateNSNodeResponse) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

// 删除NS节点
type DeleteNSNodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *DeleteNSNodeRequest) Reset() {
	*x = DeleteNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeleteNSNodeRequest) ProtoMessage() {}

func (x *DeleteNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 DeleteNSNodeRequest.ProtoReflect.Descriptor instead.
func (*DeleteNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{9}
}

func (x *DeleteNSNodeRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

// 获取单个NS节点信息
type FindNSNodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *FindNSNodeRequest) Reset() {
	*x = FindNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeRequest) ProtoMessage() {}

func (x *FindNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeRequest.ProtoReflect.Descriptor instead.
func (*FindNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{10}
}

func (x *FindNSNodeRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type FindNSNodeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNode *NSNode `protobuf:"bytes,1,opt,name=nsNode,proto3" json:"nsNode,omitempty"`
}

func (x *FindNSNodeResponse) Reset() {
	*x = FindNSNodeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeResponse) ProtoMessage() {}

func (x *FindNSNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeResponse.ProtoReflect.Descriptor instead.
func (*FindNSNodeResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{11}
}

func (x *FindNSNodeResponse) GetNsNode() *NSNode {
	if x != nil {
		return x.NsNode
	}
	return nil
}

// 修改NS节点
type UpdateNSNodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId    int64      `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
	Name        string     `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	NsClusterId int64      `protobuf:"varint,3,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	NodeLogin   *NodeLogin `protobuf:"bytes,4,opt,name=nodeLogin,proto3" json:"nodeLogin,omitempty"`
	IsOn        bool       `protobuf:"varint,6,opt,name=isOn,proto3" json:"isOn,omitempty"`
}

func (x *UpdateNSNodeRequest) Reset() {
	*x = UpdateNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeRequest) ProtoMessage() {}

func (x *UpdateNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{12}
}

func (x *UpdateNSNodeRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

func (x *UpdateNSNodeRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateNSNodeRequest) GetNsClusterId() int64 {
	if x != nil {
		return x.NsClusterId
	}
	return 0
}

func (x *UpdateNSNodeRequest) GetNodeLogin() *NodeLogin {
	if x != nil {
		return x.NodeLogin
	}
	return nil
}

func (x *UpdateNSNodeRequest) GetIsOn() bool {
	if x != nil {
		return x.IsOn
	}
	return false
}

// 安装NS节点
type InstallNSNodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *InstallNSNodeRequest) Reset() {
	*x = InstallNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*InstallNSNodeRequest) ProtoMessage() {}

func (x *InstallNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 InstallNSNodeRequest.ProtoReflect.Descriptor instead.
func (*InstallNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{13}
}

func (x *InstallNSNodeRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type InstallNSNodeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *InstallNSNodeResponse) Reset() {
	*x = InstallNSNodeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*InstallNSNodeResponse) ProtoMessage() {}

func (x *InstallNSNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 InstallNSNodeResponse.ProtoReflect.Descriptor instead.
func (*InstallNSNodeResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{14}
}

// 读取NS节点安装状态
type FindNSNodeInstallStatusRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *FindNSNodeInstallStatusRequest) Reset() {
	*x = FindNSNodeInstallStatusRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeInstallStatusRequest) ProtoMessage() {}

func (x *FindNSNodeInstallStatusRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeInstallStatusRequest.ProtoReflect.Descriptor instead.
func (*FindNSNodeInstallStatusRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{15}
}

func (x *FindNSNodeInstallStatusRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type FindNSNodeInstallStatusResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InstallStatus *NodeInstallStatus `protobuf:"bytes,1,opt,name=installStatus,proto3" json:"installStatus,omitempty"`
}

func (x *FindNSNodeInstallStatusResponse) Reset() {
	*x = FindNSNodeInstallStatusResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeInstallStatusResponse) ProtoMessage() {}

func (x *FindNSNodeInstallStatusResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeInstallStatusResponse.ProtoReflect.Descriptor instead.
func (*FindNSNodeInstallStatusResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{16}
}

func (x *FindNSNodeInstallStatusResponse) GetInstallStatus() *NodeInstallStatus {
	if x != nil {
		return x.InstallStatus
	}
	return nil
}

// 修改NS节点安装状态
type UpdateNSNodeIsInstalledRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId    int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
	IsInstalled bool  `protobuf:"varint,2,opt,name=isInstalled,proto3" json:"isInstalled,omitempty"`
}

func (x *UpdateNSNodeIsInstalledRequest) Reset() {
	*x = UpdateNSNodeIsInstalledRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeIsInstalledRequest) ProtoMessage() {}

func (x *UpdateNSNodeIsInstalledRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeIsInstalledRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeIsInstalledRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{17}
}

func (x *UpdateNSNodeIsInstalledRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

func (x *UpdateNSNodeIsInstalledRequest) GetIsInstalled() bool {
	if x != nil {
		return x.IsInstalled
	}
	return false
}

// 更新NS节点状态
type UpdateNSNodeStatusRequest 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 *UpdateNSNodeStatusRequest) Reset() {
	*x = UpdateNSNodeStatusRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeStatusRequest) ProtoMessage() {}

func (x *UpdateNSNodeStatusRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeStatusRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeStatusRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{18}
}

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

func (x *UpdateNSNodeStatusRequest) GetStatusJSON() []byte {
	if x != nil {
		return x.StatusJSON
	}
	return nil
}

// 获取当前NS节点信息
type FindCurrentNSNodeConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *FindCurrentNSNodeConfigRequest) Reset() {
	*x = FindCurrentNSNodeConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindCurrentNSNodeConfigRequest) ProtoMessage() {}

func (x *FindCurrentNSNodeConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindCurrentNSNodeConfigRequest.ProtoReflect.Descriptor instead.
func (*FindCurrentNSNodeConfigRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{19}
}

type FindCurrentNSNodeConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeJSON []byte `protobuf:"bytes,1,opt,name=nsNodeJSON,proto3" json:"nsNodeJSON,omitempty"`
}

func (x *FindCurrentNSNodeConfigResponse) Reset() {
	*x = FindCurrentNSNodeConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindCurrentNSNodeConfigResponse) ProtoMessage() {}

func (x *FindCurrentNSNodeConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindCurrentNSNodeConfigResponse.ProtoReflect.Descriptor instead.
func (*FindCurrentNSNodeConfigResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{20}
}

func (x *FindCurrentNSNodeConfigResponse) GetNsNodeJSON() []byte {
	if x != nil {
		return x.NsNodeJSON
	}
	return nil
}

// 检查NS节点新版本
type CheckNSNodeLatestVersionRequest 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 *CheckNSNodeLatestVersionRequest) Reset() {
	*x = CheckNSNodeLatestVersionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CheckNSNodeLatestVersionRequest) ProtoMessage() {}

func (x *CheckNSNodeLatestVersionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CheckNSNodeLatestVersionRequest.ProtoReflect.Descriptor instead.
func (*CheckNSNodeLatestVersionRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{21}
}

func (x *CheckNSNodeLatestVersionRequest) GetOs() string {
	if x != nil {
		return x.Os
	}
	return ""
}

func (x *CheckNSNodeLatestVersionRequest) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *CheckNSNodeLatestVersionRequest) GetCurrentVersion() string {
	if x != nil {
		return x.CurrentVersion
	}
	return ""
}

type CheckNSNodeLatestVersionResponse 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 *CheckNSNodeLatestVersionResponse) Reset() {
	*x = CheckNSNodeLatestVersionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CheckNSNodeLatestVersionResponse) ProtoMessage() {}

func (x *CheckNSNodeLatestVersionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 CheckNSNodeLatestVersionResponse.ProtoReflect.Descriptor instead.
func (*CheckNSNodeLatestVersionResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{22}
}

func (x *CheckNSNodeLatestVersionResponse) GetHasNewVersion() bool {
	if x != nil {
		return x.HasNewVersion
	}
	return false
}

func (x *CheckNSNodeLatestVersionResponse) GetNewVersion() string {
	if x != nil {
		return x.NewVersion
	}
	return ""
}

// 取得最新的版本号
type FindLatestNSNodeVersionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *FindLatestNSNodeVersionRequest) Reset() {
	*x = FindLatestNSNodeVersionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindLatestNSNodeVersionRequest) ProtoMessage() {}

func (x *FindLatestNSNodeVersionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindLatestNSNodeVersionRequest.ProtoReflect.Descriptor instead.
func (*FindLatestNSNodeVersionRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{23}
}

type FindLatestNSNodeVersionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
}

func (x *FindLatestNSNodeVersionResponse) Reset() {
	*x = FindLatestNSNodeVersionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindLatestNSNodeVersionResponse) ProtoMessage() {}

func (x *FindLatestNSNodeVersionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindLatestNSNodeVersionResponse.ProtoReflect.Descriptor instead.
func (*FindLatestNSNodeVersionResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{24}
}

func (x *FindLatestNSNodeVersionResponse) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

// 下载最新NS节点安装文件
type DownloadNSNodeInstallationFileRequest 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 *DownloadNSNodeInstallationFileRequest) Reset() {
	*x = DownloadNSNodeInstallationFileRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DownloadNSNodeInstallationFileRequest) ProtoMessage() {}

func (x *DownloadNSNodeInstallationFileRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 DownloadNSNodeInstallationFileRequest.ProtoReflect.Descriptor instead.
func (*DownloadNSNodeInstallationFileRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{25}
}

func (x *DownloadNSNodeInstallationFileRequest) GetOs() string {
	if x != nil {
		return x.Os
	}
	return ""
}

func (x *DownloadNSNodeInstallationFileRequest) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *DownloadNSNodeInstallationFileRequest) GetChunkOffset() int64 {
	if x != nil {
		return x.ChunkOffset
	}
	return 0
}

type DownloadNSNodeInstallationFileResponse 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 *DownloadNSNodeInstallationFileResponse) Reset() {
	*x = DownloadNSNodeInstallationFileResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DownloadNSNodeInstallationFileResponse) ProtoMessage() {}

func (x *DownloadNSNodeInstallationFileResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 DownloadNSNodeInstallationFileResponse.ProtoReflect.Descriptor instead.
func (*DownloadNSNodeInstallationFileResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{26}
}

func (x *DownloadNSNodeInstallationFileResponse) GetChunkData() []byte {
	if x != nil {
		return x.ChunkData
	}
	return nil
}

func (x *DownloadNSNodeInstallationFileResponse) GetSum() string {
	if x != nil {
		return x.Sum
	}
	return ""
}

func (x *DownloadNSNodeInstallationFileResponse) GetOffset() int64 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *DownloadNSNodeInstallationFileResponse) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *DownloadNSNodeInstallationFileResponse) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

// NS节点stream
type NSNodeStreamMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId       int64  `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,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 *NSNodeStreamMessage) Reset() {
	*x = NSNodeStreamMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NSNodeStreamMessage) ProtoMessage() {}

func (x *NSNodeStreamMessage) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 NSNodeStreamMessage.ProtoReflect.Descriptor instead.
func (*NSNodeStreamMessage) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{27}
}

func (x *NSNodeStreamMessage) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

func (x *NSNodeStreamMessage) GetRequestId() int64 {
	if x != nil {
		return x.RequestId
	}
	return 0
}

func (x *NSNodeStreamMessage) GetTimeoutSeconds() int32 {
	if x != nil {
		return x.TimeoutSeconds
	}
	return 0
}

func (x *NSNodeStreamMessage) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *NSNodeStreamMessage) GetDataJSON() []byte {
	if x != nil {
		return x.DataJSON
	}
	return nil
}

func (x *NSNodeStreamMessage) GetIsOk() bool {
	if x != nil {
		return x.IsOk
	}
	return false
}

func (x *NSNodeStreamMessage) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// 更改NS节点连接的API节点信息
type UpdateNSNodeConnectedAPINodesRequest 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 *UpdateNSNodeConnectedAPINodesRequest) Reset() {
	*x = UpdateNSNodeConnectedAPINodesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeConnectedAPINodesRequest) ProtoMessage() {}

func (x *UpdateNSNodeConnectedAPINodesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeConnectedAPINodesRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeConnectedAPINodesRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{28}
}

func (x *UpdateNSNodeConnectedAPINodesRequest) GetApiNodeIds() []int64 {
	if x != nil {
		return x.ApiNodeIds
	}
	return nil
}

// 修改NS节点登录信息
type UpdateNSNodeLoginRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId  int64      `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
	NodeLogin *NodeLogin `protobuf:"bytes,2,opt,name=nodeLogin,proto3" json:"nodeLogin,omitempty"`
}

func (x *UpdateNSNodeLoginRequest) Reset() {
	*x = UpdateNSNodeLoginRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeLoginRequest) ProtoMessage() {}

func (x *UpdateNSNodeLoginRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeLoginRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeLoginRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{29}
}

func (x *UpdateNSNodeLoginRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

func (x *UpdateNSNodeLoginRequest) GetNodeLogin() *NodeLogin {
	if x != nil {
		return x.NodeLogin
	}
	return nil
}

// 启动NS节点
type StartNSNodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *StartNSNodeRequest) Reset() {
	*x = StartNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StartNSNodeRequest) ProtoMessage() {}

func (x *StartNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 StartNSNodeRequest.ProtoReflect.Descriptor instead.
func (*StartNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{30}
}

func (x *StartNSNodeRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type StartNSNodeResponse 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 *StartNSNodeResponse) Reset() {
	*x = StartNSNodeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StartNSNodeResponse) ProtoMessage() {}

func (x *StartNSNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 StartNSNodeResponse.ProtoReflect.Descriptor instead.
func (*StartNSNodeResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{31}
}

func (x *StartNSNodeResponse) GetIsOk() bool {
	if x != nil {
		return x.IsOk
	}
	return false
}

func (x *StartNSNodeResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

// 停止NS节点
type StopNSNodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *StopNSNodeRequest) Reset() {
	*x = StopNSNodeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StopNSNodeRequest) ProtoMessage() {}

func (x *StopNSNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 StopNSNodeRequest.ProtoReflect.Descriptor instead.
func (*StopNSNodeRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{32}
}

func (x *StopNSNodeRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type StopNSNodeResponse 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 *StopNSNodeResponse) Reset() {
	*x = StopNSNodeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StopNSNodeResponse) ProtoMessage() {}

func (x *StopNSNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 StopNSNodeResponse.ProtoReflect.Descriptor instead.
func (*StopNSNodeResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{33}
}

func (x *StopNSNodeResponse) GetIsOk() bool {
	if x != nil {
		return x.IsOk
	}
	return false
}

func (x *StopNSNodeResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

// 获取NS节点的DDoS设置
type FindNSNodeDDoSProtectionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *FindNSNodeDDoSProtectionRequest) Reset() {
	*x = FindNSNodeDDoSProtectionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeDDoSProtectionRequest) ProtoMessage() {}

func (x *FindNSNodeDDoSProtectionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeDDoSProtectionRequest.ProtoReflect.Descriptor instead.
func (*FindNSNodeDDoSProtectionRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{34}
}

func (x *FindNSNodeDDoSProtectionRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type FindNSNodeDDoSProtectionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DdosProtectionJSON []byte `protobuf:"bytes,1,opt,name=ddosProtectionJSON,proto3" json:"ddosProtectionJSON,omitempty"`
}

func (x *FindNSNodeDDoSProtectionResponse) Reset() {
	*x = FindNSNodeDDoSProtectionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeDDoSProtectionResponse) ProtoMessage() {}

func (x *FindNSNodeDDoSProtectionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeDDoSProtectionResponse.ProtoReflect.Descriptor instead.
func (*FindNSNodeDDoSProtectionResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{35}
}

func (x *FindNSNodeDDoSProtectionResponse) GetDdosProtectionJSON() []byte {
	if x != nil {
		return x.DdosProtectionJSON
	}
	return nil
}

// 修改NS节点的DDoS设置
type UpdateNSNodeDDoSProtectionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId           int64  `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
	DdosProtectionJSON []byte `protobuf:"bytes,2,opt,name=ddosProtectionJSON,proto3" json:"ddosProtectionJSON,omitempty"`
}

func (x *UpdateNSNodeDDoSProtectionRequest) Reset() {
	*x = UpdateNSNodeDDoSProtectionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeDDoSProtectionRequest) ProtoMessage() {}

func (x *UpdateNSNodeDDoSProtectionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeDDoSProtectionRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeDDoSProtectionRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{36}
}

func (x *UpdateNSNodeDDoSProtectionRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

func (x *UpdateNSNodeDDoSProtectionRequest) GetDdosProtectionJSON() []byte {
	if x != nil {
		return x.DdosProtectionJSON
	}
	return nil
}

// 查找单个节点的API相关配置
type FindNSNodeAPIConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId int64 `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
}

func (x *FindNSNodeAPIConfigRequest) Reset() {
	*x = FindNSNodeAPIConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeAPIConfigRequest) ProtoMessage() {}

func (x *FindNSNodeAPIConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeAPIConfigRequest.ProtoReflect.Descriptor instead.
func (*FindNSNodeAPIConfigRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{37}
}

func (x *FindNSNodeAPIConfigRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

type FindNSNodeAPIConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ApiNodeAddrsJSON []byte `protobuf:"bytes,1,opt,name=apiNodeAddrsJSON,proto3" json:"apiNodeAddrsJSON,omitempty"`
}

func (x *FindNSNodeAPIConfigResponse) Reset() {
	*x = FindNSNodeAPIConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSNodeAPIConfigResponse) ProtoMessage() {}

func (x *FindNSNodeAPIConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 FindNSNodeAPIConfigResponse.ProtoReflect.Descriptor instead.
func (*FindNSNodeAPIConfigResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{38}
}

func (x *FindNSNodeAPIConfigResponse) GetApiNodeAddrsJSON() []byte {
	if x != nil {
		return x.ApiNodeAddrsJSON
	}
	return nil
}

// 修改某个节点的API相关配置
type UpdateNSNodeAPIConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsNodeId         int64  `protobuf:"varint,1,opt,name=nsNodeId,proto3" json:"nsNodeId,omitempty"`
	ApiNodeAddrsJSON []byte `protobuf:"bytes,2,opt,name=apiNodeAddrsJSON,proto3" json:"apiNodeAddrsJSON,omitempty"`
}

func (x *UpdateNSNodeAPIConfigRequest) Reset() {
	*x = UpdateNSNodeAPIConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_node_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSNodeAPIConfigRequest) ProtoMessage() {}

func (x *UpdateNSNodeAPIConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_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 UpdateNSNodeAPIConfigRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSNodeAPIConfigRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_node_proto_rawDescGZIP(), []int{39}
}

func (x *UpdateNSNodeAPIConfigRequest) GetNsNodeId() int64 {
	if x != nil {
		return x.NsNodeId
	}
	return 0
}

func (x *UpdateNSNodeAPIConfigRequest) GetApiNodeAddrsJSON() []byte {
	if x != nil {
		return x.ApiNodeAddrsJSON
	}
	return nil
}

var File_service_ns_node_proto protoreflect.FileDescriptor

var file_service_ns_node_proto_rawDesc = []byte{
	0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x73, 0x5f, 0x6e, 0x6f, 0x64,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x1a, 0x6d, 0x6f, 0x64,
	0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x73, 0x5f, 0x6e, 0x6f, 0x64,
	0x65, 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,
	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, 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, 0x22, 0x48, 0x0a, 0x24, 0x46, 0x69, 0x6e,
	0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53,
	0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07,
	0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
	0x70, 0x62, 0x2e, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x6e, 0x73, 0x4e, 0x6f, 0x64,
	0x65, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53,
	0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a,
	0x1b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b,
	0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0b, 0x6e, 0x73, 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, 0x22, 0xc7,
	0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 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, 0x20, 0x0a, 0x0b, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x73, 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, 0x22, 0x40, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74,
	0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x4e, 0x6f, 0x64,
	0x65, 0x52, 0x07, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x2c, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x4e, 0x53, 0x4e,
	0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x73,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0b, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x7c, 0x0a, 0x13,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x31,
	0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49,
	0x64, 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65,
	0x49, 0x64, 0x22, 0x38, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x6e, 0x73, 0x4e, 0x6f,
	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53,
	0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0xa8, 0x01, 0x0a,
	0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 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, 0x20, 0x0a, 0x0b, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x73, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x6f,
	0x67, 0x69, 0x6e, 0x18, 0x04, 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, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x22, 0x32, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x49,
	0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65,
	0x49, 0x64, 0x22, 0x5e, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x5e, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f,
	0x64, 0x65, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 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, 0x53, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x20, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x43,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x41, 0x0a, 0x1f, 0x46, 0x69, 0x6e,
	0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
	0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0a, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x6d, 0x0a, 0x1f,
	0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x53, 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, 0x68, 0x0a, 0x20, 0x43,
	0x68, 0x65, 0x63, 0x6b, 0x4e, 0x53, 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, 0x20, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74,
	0x65, 0x73, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x4c,
	0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0x0a, 0x25, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
	0x4e, 0x53, 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, 0xa6, 0x01, 0x0a, 0x26, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
	0x4e, 0x53, 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, 0xd5, 0x01, 0x0a,
	0x13, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 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, 0x46, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53,
	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, 0x63, 0x0a, 0x18,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f,
	0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 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, 0x30, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64,
	0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64,
	0x65, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x53, 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, 0x2f, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x53, 0x4e, 0x6f,
	0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x53, 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, 0x3d, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f,
	0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f,
	0x64, 0x65, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x6f, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4e, 0x53, 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, 0x1a, 0x0a,
	0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x08, 0x6e, 0x73, 0x4e, 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, 0x38, 0x0a, 0x1a, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64,
	0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64,
	0x65, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x66,
	0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50,
	0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x08, 0x6e, 0x73, 0x4e, 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, 0x32, 0xba, 0x11, 0x0a, 0x0d, 0x4e, 0x53, 0x4e, 0x6f, 0x64,
	0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64,
	0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46,
	0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74,
	0x68, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
	0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43,
	0x0a, 0x0f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65,
	0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e,
	0x53, 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, 0x4d, 0x0a, 0x14, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x70, 0x62,
	0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 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, 0x4d, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65,
	0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x4e,
	0x6f, 0x64, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 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, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e,
	0x53, 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,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x53, 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, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f,
	0x64, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53,
	0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x62,
	0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x4e, 0x53, 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, 0x3b,
	0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70,
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e,
	0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x44, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x19, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x53, 0x4e, 0x6f,
	0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69,
	0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 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, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46,
	0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x4d,
	0x0a, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x73,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x43, 0x0a,
	0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
	0x53, 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, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x2e,
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x53,
	0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4e,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x53, 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, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65,
	0x63, 0x6b, 0x4e, 0x53, 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, 0x62, 0x0a,
	0x17, 0x66, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64,
	0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
	0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70,
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x53, 0x4e, 0x6f,
	0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x77, 0x0a, 0x1e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x53, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46,
	0x69, 0x6c, 0x65, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x4e, 0x53, 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, 0x2a,
	0x2e, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x53, 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, 0x44, 0x0a, 0x0c, 0x6e, 0x73,
	0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e,
	0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01,
	0x12, 0x47, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54,
	0x6f, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x4e,
	0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x1d, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x65, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53,
	0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72,
	0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17,
	0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x4e,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e,
	0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70,
	0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f,
	0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 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, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 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, 0x53, 0x0a, 0x1a, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x44, 0x6f, 0x53, 0x50,
	0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x56, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50,
	0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_service_ns_node_proto_rawDescOnce sync.Once
	file_service_ns_node_proto_rawDescData = file_service_ns_node_proto_rawDesc
)

func file_service_ns_node_proto_rawDescGZIP() []byte {
	file_service_ns_node_proto_rawDescOnce.Do(func() {
		file_service_ns_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_ns_node_proto_rawDescData)
	})
	return file_service_ns_node_proto_rawDescData
}

var file_service_ns_node_proto_msgTypes = make([]protoimpl.MessageInfo, 40)
var file_service_ns_node_proto_goTypes = []interface{}{
	(*FindAllNSNodesWithNSClusterIdRequest)(nil),         // 0: pb.FindAllNSNodesWithNSClusterIdRequest
	(*FindAllNSNodesWithNSClusterIdResponse)(nil),        // 1: pb.FindAllNSNodesWithNSClusterIdResponse
	(*CountAllNSNodesRequest)(nil),                       // 2: pb.CountAllNSNodesRequest
	(*CountAllNSNodesMatchRequest)(nil),                  // 3: pb.CountAllNSNodesMatchRequest
	(*ListNSNodesMatchRequest)(nil),                      // 4: pb.ListNSNodesMatchRequest
	(*ListNSNodesMatchResponse)(nil),                     // 5: pb.ListNSNodesMatchResponse
	(*CountAllUpgradeNSNodesWithNSClusterIdRequest)(nil), // 6: pb.CountAllUpgradeNSNodesWithNSClusterIdRequest
	(*CreateNSNodeRequest)(nil),                          // 7: pb.CreateNSNodeRequest
	(*CreateNSNodeResponse)(nil),                         // 8: pb.CreateNSNodeResponse
	(*DeleteNSNodeRequest)(nil),                          // 9: pb.DeleteNSNodeRequest
	(*FindNSNodeRequest)(nil),                            // 10: pb.FindNSNodeRequest
	(*FindNSNodeResponse)(nil),                           // 11: pb.FindNSNodeResponse
	(*UpdateNSNodeRequest)(nil),                          // 12: pb.UpdateNSNodeRequest
	(*InstallNSNodeRequest)(nil),                         // 13: pb.InstallNSNodeRequest
	(*InstallNSNodeResponse)(nil),                        // 14: pb.InstallNSNodeResponse
	(*FindNSNodeInstallStatusRequest)(nil),               // 15: pb.FindNSNodeInstallStatusRequest
	(*FindNSNodeInstallStatusResponse)(nil),              // 16: pb.FindNSNodeInstallStatusResponse
	(*UpdateNSNodeIsInstalledRequest)(nil),               // 17: pb.UpdateNSNodeIsInstalledRequest
	(*UpdateNSNodeStatusRequest)(nil),                    // 18: pb.UpdateNSNodeStatusRequest
	(*FindCurrentNSNodeConfigRequest)(nil),               // 19: pb.FindCurrentNSNodeConfigRequest
	(*FindCurrentNSNodeConfigResponse)(nil),              // 20: pb.FindCurrentNSNodeConfigResponse
	(*CheckNSNodeLatestVersionRequest)(nil),              // 21: pb.CheckNSNodeLatestVersionRequest
	(*CheckNSNodeLatestVersionResponse)(nil),             // 22: pb.CheckNSNodeLatestVersionResponse
	(*FindLatestNSNodeVersionRequest)(nil),               // 23: pb.FindLatestNSNodeVersionRequest
	(*FindLatestNSNodeVersionResponse)(nil),              // 24: pb.FindLatestNSNodeVersionResponse
	(*DownloadNSNodeInstallationFileRequest)(nil),        // 25: pb.DownloadNSNodeInstallationFileRequest
	(*DownloadNSNodeInstallationFileResponse)(nil),       // 26: pb.DownloadNSNodeInstallationFileResponse
	(*NSNodeStreamMessage)(nil),                          // 27: pb.NSNodeStreamMessage
	(*UpdateNSNodeConnectedAPINodesRequest)(nil),         // 28: pb.UpdateNSNodeConnectedAPINodesRequest
	(*UpdateNSNodeLoginRequest)(nil),                     // 29: pb.UpdateNSNodeLoginRequest
	(*StartNSNodeRequest)(nil),                           // 30: pb.StartNSNodeRequest
	(*StartNSNodeResponse)(nil),                          // 31: pb.StartNSNodeResponse
	(*StopNSNodeRequest)(nil),                            // 32: pb.StopNSNodeRequest
	(*StopNSNodeResponse)(nil),                           // 33: pb.StopNSNodeResponse
	(*FindNSNodeDDoSProtectionRequest)(nil),              // 34: pb.FindNSNodeDDoSProtectionRequest
	(*FindNSNodeDDoSProtectionResponse)(nil),             // 35: pb.FindNSNodeDDoSProtectionResponse
	(*UpdateNSNodeDDoSProtectionRequest)(nil),            // 36: pb.UpdateNSNodeDDoSProtectionRequest
	(*FindNSNodeAPIConfigRequest)(nil),                   // 37: pb.FindNSNodeAPIConfigRequest
	(*FindNSNodeAPIConfigResponse)(nil),                  // 38: pb.FindNSNodeAPIConfigResponse
	(*UpdateNSNodeAPIConfigRequest)(nil),                 // 39: pb.UpdateNSNodeAPIConfigRequest
	(*NSNode)(nil),                                       // 40: pb.NSNode
	(*NodeLogin)(nil),                                    // 41: pb.NodeLogin
	(*NodeInstallStatus)(nil),                            // 42: pb.NodeInstallStatus
	(*RPCCountResponse)(nil),                             // 43: pb.RPCCountResponse
	(*RPCSuccess)(nil),                                   // 44: pb.RPCSuccess
}
var file_service_ns_node_proto_depIdxs = []int32{
	40, // 0: pb.FindAllNSNodesWithNSClusterIdResponse.nsNodes:type_name -> pb.NSNode
	40, // 1: pb.ListNSNodesMatchResponse.nsNodes:type_name -> pb.NSNode
	41, // 2: pb.CreateNSNodeRequest.nodeLogin:type_name -> pb.NodeLogin
	40, // 3: pb.FindNSNodeResponse.nsNode:type_name -> pb.NSNode
	41, // 4: pb.UpdateNSNodeRequest.nodeLogin:type_name -> pb.NodeLogin
	42, // 5: pb.FindNSNodeInstallStatusResponse.installStatus:type_name -> pb.NodeInstallStatus
	41, // 6: pb.UpdateNSNodeLoginRequest.nodeLogin:type_name -> pb.NodeLogin
	0,  // 7: pb.NSNodeService.findAllNSNodesWithNSClusterId:input_type -> pb.FindAllNSNodesWithNSClusterIdRequest
	2,  // 8: pb.NSNodeService.countAllNSNodes:input_type -> pb.CountAllNSNodesRequest
	3,  // 9: pb.NSNodeService.countAllNSNodesMatch:input_type -> pb.CountAllNSNodesMatchRequest
	4,  // 10: pb.NSNodeService.listNSNodesMatch:input_type -> pb.ListNSNodesMatchRequest
	6,  // 11: pb.NSNodeService.countAllUpgradeNSNodesWithNSClusterId:input_type -> pb.CountAllUpgradeNSNodesWithNSClusterIdRequest
	7,  // 12: pb.NSNodeService.createNSNode:input_type -> pb.CreateNSNodeRequest
	9,  // 13: pb.NSNodeService.deleteNSNode:input_type -> pb.DeleteNSNodeRequest
	10, // 14: pb.NSNodeService.findNSNode:input_type -> pb.FindNSNodeRequest
	12, // 15: pb.NSNodeService.updateNSNode:input_type -> pb.UpdateNSNodeRequest
	13, // 16: pb.NSNodeService.installNSNode:input_type -> pb.InstallNSNodeRequest
	15, // 17: pb.NSNodeService.findNSNodeInstallStatus:input_type -> pb.FindNSNodeInstallStatusRequest
	17, // 18: pb.NSNodeService.updateNSNodeIsInstalled:input_type -> pb.UpdateNSNodeIsInstalledRequest
	18, // 19: pb.NSNodeService.updateNSNodeStatus:input_type -> pb.UpdateNSNodeStatusRequest
	19, // 20: pb.NSNodeService.findCurrentNSNodeConfig:input_type -> pb.FindCurrentNSNodeConfigRequest
	21, // 21: pb.NSNodeService.checkNSNodeLatestVersion:input_type -> pb.CheckNSNodeLatestVersionRequest
	23, // 22: pb.NSNodeService.findLatestNSNodeVersion:input_type -> pb.FindLatestNSNodeVersionRequest
	25, // 23: pb.NSNodeService.downloadNSNodeInstallationFile:input_type -> pb.DownloadNSNodeInstallationFileRequest
	27, // 24: pb.NSNodeService.nsNodeStream:input_type -> pb.NSNodeStreamMessage
	27, // 25: pb.NSNodeService.sendCommandToNSNode:input_type -> pb.NSNodeStreamMessage
	28, // 26: pb.NSNodeService.updateNSNodeConnectedAPINodes:input_type -> pb.UpdateNSNodeConnectedAPINodesRequest
	29, // 27: pb.NSNodeService.updateNSNodeLogin:input_type -> pb.UpdateNSNodeLoginRequest
	30, // 28: pb.NSNodeService.startNSNode:input_type -> pb.StartNSNodeRequest
	32, // 29: pb.NSNodeService.stopNSNode:input_type -> pb.StopNSNodeRequest
	34, // 30: pb.NSNodeService.findNSNodeDDoSProtection:input_type -> pb.FindNSNodeDDoSProtectionRequest
	36, // 31: pb.NSNodeService.updateNSNodeDDoSProtection:input_type -> pb.UpdateNSNodeDDoSProtectionRequest
	37, // 32: pb.NSNodeService.findNSNodeAPIConfig:input_type -> pb.FindNSNodeAPIConfigRequest
	39, // 33: pb.NSNodeService.updateNSNodeAPIConfig:input_type -> pb.UpdateNSNodeAPIConfigRequest
	1,  // 34: pb.NSNodeService.findAllNSNodesWithNSClusterId:output_type -> pb.FindAllNSNodesWithNSClusterIdResponse
	43, // 35: pb.NSNodeService.countAllNSNodes:output_type -> pb.RPCCountResponse
	43, // 36: pb.NSNodeService.countAllNSNodesMatch:output_type -> pb.RPCCountResponse
	5,  // 37: pb.NSNodeService.listNSNodesMatch:output_type -> pb.ListNSNodesMatchResponse
	43, // 38: pb.NSNodeService.countAllUpgradeNSNodesWithNSClusterId:output_type -> pb.RPCCountResponse
	8,  // 39: pb.NSNodeService.createNSNode:output_type -> pb.CreateNSNodeResponse
	44, // 40: pb.NSNodeService.deleteNSNode:output_type -> pb.RPCSuccess
	11, // 41: pb.NSNodeService.findNSNode:output_type -> pb.FindNSNodeResponse
	44, // 42: pb.NSNodeService.updateNSNode:output_type -> pb.RPCSuccess
	14, // 43: pb.NSNodeService.installNSNode:output_type -> pb.InstallNSNodeResponse
	16, // 44: pb.NSNodeService.findNSNodeInstallStatus:output_type -> pb.FindNSNodeInstallStatusResponse
	44, // 45: pb.NSNodeService.updateNSNodeIsInstalled:output_type -> pb.RPCSuccess
	44, // 46: pb.NSNodeService.updateNSNodeStatus:output_type -> pb.RPCSuccess
	20, // 47: pb.NSNodeService.findCurrentNSNodeConfig:output_type -> pb.FindCurrentNSNodeConfigResponse
	22, // 48: pb.NSNodeService.checkNSNodeLatestVersion:output_type -> pb.CheckNSNodeLatestVersionResponse
	24, // 49: pb.NSNodeService.findLatestNSNodeVersion:output_type -> pb.FindLatestNSNodeVersionResponse
	26, // 50: pb.NSNodeService.downloadNSNodeInstallationFile:output_type -> pb.DownloadNSNodeInstallationFileResponse
	27, // 51: pb.NSNodeService.nsNodeStream:output_type -> pb.NSNodeStreamMessage
	27, // 52: pb.NSNodeService.sendCommandToNSNode:output_type -> pb.NSNodeStreamMessage
	44, // 53: pb.NSNodeService.updateNSNodeConnectedAPINodes:output_type -> pb.RPCSuccess
	44, // 54: pb.NSNodeService.updateNSNodeLogin:output_type -> pb.RPCSuccess
	31, // 55: pb.NSNodeService.startNSNode:output_type -> pb.StartNSNodeResponse
	33, // 56: pb.NSNodeService.stopNSNode:output_type -> pb.StopNSNodeResponse
	35, // 57: pb.NSNodeService.findNSNodeDDoSProtection:output_type -> pb.FindNSNodeDDoSProtectionResponse
	44, // 58: pb.NSNodeService.updateNSNodeDDoSProtection:output_type -> pb.RPCSuccess
	38, // 59: pb.NSNodeService.findNSNodeAPIConfig:output_type -> pb.FindNSNodeAPIConfigResponse
	44, // 60: pb.NSNodeService.updateNSNodeAPIConfig:output_type -> pb.RPCSuccess
	34, // [34:61] is the sub-list for method output_type
	7,  // [7:34] is the sub-list for method input_type
	7,  // [7:7] is the sub-list for extension type_name
	7,  // [7:7] is the sub-list for extension extendee
	0,  // [0:7] is the sub-list for field type_name
}

func init() { file_service_ns_node_proto_init() }
func file_service_ns_node_proto_init() {
	if File_service_ns_node_proto != nil {
		return
	}
	file_models_model_ns_node_proto_init()
	file_models_model_node_install_status_proto_init()
	file_models_rpc_messages_proto_init()
	file_models_model_node_login_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_service_ns_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAllNSNodesWithNSClusterIdRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAllNSNodesWithNSClusterIdResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountAllNSNodesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountAllNSNodesMatchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListNSNodesMatchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListNSNodesMatchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountAllUpgradeNSNodesWithNSClusterIdRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateNSNodeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstallNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstallNSNodeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeInstallStatusRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeInstallStatusResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeIsInstalledRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeStatusRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindCurrentNSNodeConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindCurrentNSNodeConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckNSNodeLatestVersionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckNSNodeLatestVersionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindLatestNSNodeVersionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindLatestNSNodeVersionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadNSNodeInstallationFileRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadNSNodeInstallationFileResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NSNodeStreamMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeConnectedAPINodesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeLoginRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartNSNodeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopNSNodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopNSNodeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeDDoSProtectionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeDDoSProtectionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeDDoSProtectionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeAPIConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSNodeAPIConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_node_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSNodeAPIConfigRequest); 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_ns_node_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   40,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_service_ns_node_proto_goTypes,
		DependencyIndexes: file_service_ns_node_proto_depIdxs,
		MessageInfos:      file_service_ns_node_proto_msgTypes,
	}.Build()
	File_service_ns_node_proto = out.File
	file_service_ns_node_proto_rawDesc = nil
	file_service_ns_node_proto_goTypes = nil
	file_service_ns_node_proto_depIdxs = nil
}
