// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.19.4
// source: service_ns_cluster.proto

package pb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// 创建集群
type CreateNSClusterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name          string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	AccessLogJSON []byte   `protobuf:"bytes,2,opt,name=accessLogJSON,proto3" json:"accessLogJSON,omitempty"`
	Hosts         []string `protobuf:"bytes,3,rep,name=hosts,proto3" json:"hosts,omitempty"`
	SoaJSON       []byte   `protobuf:"bytes,4,opt,name=soaJSON,proto3" json:"soaJSON,omitempty"`
	Email         string   `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"`
}

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

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

func (*CreateNSClusterRequest) ProtoMessage() {}

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

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

func (x *CreateNSClusterRequest) GetAccessLogJSON() []byte {
	if x != nil {
		return x.AccessLogJSON
	}
	return nil
}

func (x *CreateNSClusterRequest) GetHosts() []string {
	if x != nil {
		return x.Hosts
	}
	return nil
}

func (x *CreateNSClusterRequest) GetSoaJSON() []byte {
	if x != nil {
		return x.SoaJSON
	}
	return nil
}

func (x *CreateNSClusterRequest) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

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

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

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

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

func (*CreateNSClusterResponse) ProtoMessage() {}

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

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

// 修改集群
type UpdateNSClusterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId     int64    `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	Name            string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	IsOn            bool     `protobuf:"varint,3,opt,name=isOn,proto3" json:"isOn,omitempty"`
	Hosts           []string `protobuf:"bytes,4,rep,name=hosts,proto3" json:"hosts,omitempty"`
	Email           string   `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"`
	AutoRemoteStart bool     `protobuf:"varint,5,opt,name=autoRemoteStart,proto3" json:"autoRemoteStart,omitempty"`
	TimeZone        string   `protobuf:"bytes,6,opt,name=timeZone,proto3" json:"timeZone,omitempty"`
	DetectAgents    bool     `protobuf:"varint,7,opt,name=detectAgents,proto3" json:"detectAgents,omitempty"`
	CheckingPorts   bool     `protobuf:"varint,9,opt,name=checkingPorts,proto3" json:"checkingPorts,omitempty"` // 是否检查端口连通性（目前仅在节点列表上）
}

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

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

func (*UpdateNSClusterRequest) ProtoMessage() {}

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

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

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

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

func (x *UpdateNSClusterRequest) GetHosts() []string {
	if x != nil {
		return x.Hosts
	}
	return nil
}

func (x *UpdateNSClusterRequest) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *UpdateNSClusterRequest) GetAutoRemoteStart() bool {
	if x != nil {
		return x.AutoRemoteStart
	}
	return false
}

func (x *UpdateNSClusterRequest) GetTimeZone() string {
	if x != nil {
		return x.TimeZone
	}
	return ""
}

func (x *UpdateNSClusterRequest) GetDetectAgents() bool {
	if x != nil {
		return x.DetectAgents
	}
	return false
}

func (x *UpdateNSClusterRequest) GetCheckingPorts() bool {
	if x != nil {
		return x.CheckingPorts
	}
	return false
}

// 查找集群访问日志配置
type FindNSClusterAccessLogRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterAccessLogRequest) ProtoMessage() {}

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

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

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

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

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

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

func (*FindNSClusterAccessLogResponse) ProtoMessage() {}

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

func (x *FindNSClusterAccessLogResponse) GetAccessLogJSON() []byte {
	if x != nil {
		return x.AccessLogJSON
	}
	return nil
}

// 修改集群访问日志配置
type UpdateNSClusterAccessLogRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId   int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	AccessLogJSON []byte `protobuf:"bytes,2,opt,name=accessLogJSON,proto3" json:"accessLogJSON,omitempty"`
}

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

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

func (*UpdateNSClusterAccessLogRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterAccessLogRequest) GetAccessLogJSON() []byte {
	if x != nil {
		return x.AccessLogJSON
	}
	return nil
}

// 删除集群
type DeleteNSCluster struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*DeleteNSCluster) ProtoMessage() {}

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

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

// 查找单个可用集群信息
type FindNSClusterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterRequest) ProtoMessage() {}

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

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

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

	NsCluster *NSCluster `protobuf:"bytes,1,opt,name=nsCluster,proto3" json:"nsCluster,omitempty"`
}

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

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

func (*FindNSClusterResponse) ProtoMessage() {}

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

func (x *FindNSClusterResponse) GetNsCluster() *NSCluster {
	if x != nil {
		return x.NsCluster
	}
	return nil
}

// 计算所有可用集群的数量
type CountAllNSClustersRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*CountAllNSClustersRequest) ProtoMessage() {}

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

// 列出单页可用集群
type ListNSClustersRequest 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"`
}

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

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

func (*ListNSClustersRequest) ProtoMessage() {}

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

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

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

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

	NsClusters []*NSCluster `protobuf:"bytes,1,rep,name=nsClusters,proto3" json:"nsClusters,omitempty"`
}

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

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

func (*ListNSClustersResponse) ProtoMessage() {}

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

func (x *ListNSClustersResponse) GetNsClusters() []*NSCluster {
	if x != nil {
		return x.NsClusters
	}
	return nil
}

// 查找所有可用集群
type FindAllNSClustersRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*FindAllNSClustersRequest) ProtoMessage() {}

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

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

	NsClusters []*NSCluster `protobuf:"bytes,1,rep,name=nsClusters,proto3" json:"nsClusters,omitempty"`
}

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

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

func (*FindAllNSClustersResponse) ProtoMessage() {}

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

func (x *FindAllNSClustersResponse) GetNsClusters() []*NSCluster {
	if x != nil {
		return x.NsClusters
	}
	return nil
}

// 设置递归DNS配置
type UpdateNSClusterRecursionConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId   int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	RecursionJSON []byte `protobuf:"bytes,2,opt,name=recursionJSON,proto3" json:"recursionJSON,omitempty"`
}

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

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

func (*UpdateNSClusterRecursionConfigRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterRecursionConfigRequest) GetRecursionJSON() []byte {
	if x != nil {
		return x.RecursionJSON
	}
	return nil
}

// 读取递归DNS配置
type FindNSClusterRecursionConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterRecursionConfigRequest) ProtoMessage() {}

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

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

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

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

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

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

func (*FindNSClusterRecursionConfigResponse) ProtoMessage() {}

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

func (x *FindNSClusterRecursionConfigResponse) GetRecursionJSON() []byte {
	if x != nil {
		return x.RecursionJSON
	}
	return nil
}

// 查找集群的TCP设置
type FindNSClusterTCPConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterTCPConfigRequest) ProtoMessage() {}

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

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

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

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

func (x *FindNSClusterTCPConfigResponse) Reset() {
	*x = FindNSClusterTCPConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterTCPConfigResponse) ProtoMessage() {}

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

func (x *FindNSClusterTCPConfigResponse) GetTcpJSON() []byte {
	if x != nil {
		return x.TcpJSON
	}
	return nil
}

// 查找集群的TLS设置
type FindNSClusterTLSConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterTLSConfigRequest) ProtoMessage() {}

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

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

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

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

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

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

func (*FindNSClusterTLSConfigResponse) ProtoMessage() {}

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

func (x *FindNSClusterTLSConfigResponse) GetTlsJSON() []byte {
	if x != nil {
		return x.TlsJSON
	}
	return nil
}

// 查找集群的UDP设置
type FindNSClusterUDPConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *FindNSClusterUDPConfigRequest) Reset() {
	*x = FindNSClusterUDPConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterUDPConfigRequest) ProtoMessage() {}

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

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

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

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

func (x *FindNSClusterUDPConfigResponse) Reset() {
	*x = FindNSClusterUDPConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterUDPConfigResponse) ProtoMessage() {}

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

func (x *FindNSClusterUDPConfigResponse) GetUdpJSON() []byte {
	if x != nil {
		return x.UdpJSON
	}
	return nil
}

// 查找集群的DoH设置
type FindNSClusterDoHConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterDoHConfigRequest) ProtoMessage() {}

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

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

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

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

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

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

func (*FindNSClusterDoHConfigResponse) ProtoMessage() {}

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

func (x *FindNSClusterDoHConfigResponse) GetDohJSON() []byte {
	if x != nil {
		return x.DohJSON
	}
	return nil
}

// 修改集群的TCP设置
type UpdateNSClusterTCPRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	TcpJSON     []byte `protobuf:"bytes,2,opt,name=tcpJSON,proto3" json:"tcpJSON,omitempty"`
}

func (x *UpdateNSClusterTCPRequest) Reset() {
	*x = UpdateNSClusterTCPRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSClusterTCPRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterTCPRequest) GetTcpJSON() []byte {
	if x != nil {
		return x.TcpJSON
	}
	return nil
}

// 修改集群的TLS设置
type UpdateNSClusterTLSRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	TlsJSON     []byte `protobuf:"bytes,2,opt,name=tlsJSON,proto3" json:"tlsJSON,omitempty"`
}

func (x *UpdateNSClusterTLSRequest) Reset() {
	*x = UpdateNSClusterTLSRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSClusterTLSRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterTLSRequest) GetTlsJSON() []byte {
	if x != nil {
		return x.TlsJSON
	}
	return nil
}

// 修改集群的UDP设置
type UpdateNSClusterUDPRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	UdpJSON     []byte `protobuf:"bytes,2,opt,name=udpJSON,proto3" json:"udpJSON,omitempty"`
}

func (x *UpdateNSClusterUDPRequest) Reset() {
	*x = UpdateNSClusterUDPRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSClusterUDPRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterUDPRequest) GetUdpJSON() []byte {
	if x != nil {
		return x.UdpJSON
	}
	return nil
}

// 修改集群的DoH设置
type UpdateNSClusterDoHRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	DohJSON     []byte `protobuf:"bytes,2,opt,name=dohJSON,proto3" json:"dohJSON,omitempty"`
}

func (x *UpdateNSClusterDoHRequest) Reset() {
	*x = UpdateNSClusterDoHRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSClusterDoHRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterDoHRequest) GetDohJSON() []byte {
	if x != nil {
		return x.DohJSON
	}
	return nil
}

// 计算使用某个SSL证书的集群数量
type CountAllNSClustersWithSSLCertIdRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SslCertId int64 `protobuf:"varint,1,opt,name=sslCertId,proto3" json:"sslCertId,omitempty"`
}

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

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

func (*CountAllNSClustersWithSSLCertIdRequest) ProtoMessage() {}

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

func (x *CountAllNSClustersWithSSLCertIdRequest) GetSslCertId() int64 {
	if x != nil {
		return x.SslCertId
	}
	return 0
}

// 获取集群的DDoS设置
type FindNSClusterDDoSProtectionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterDDoSProtectionRequest) ProtoMessage() {}

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

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

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

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

func (x *FindNSClusterDDoSProtectionResponse) Reset() {
	*x = FindNSClusterDDoSProtectionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterDDoSProtectionResponse) ProtoMessage() {}

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

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

// 修改集群的DDoS设置
type UpdateNSClusterDDoSProtectionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*UpdateNSClusterDDoSProtectionRequest) ProtoMessage() {}

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

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

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

// 查找NS集群的主机地址
type FindNSClusterHostsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *FindNSClusterHostsRequest) Reset() {
	*x = FindNSClusterHostsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterHostsRequest) ProtoMessage() {}

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

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

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

	Hosts []string `protobuf:"bytes,1,rep,name=hosts,proto3" json:"hosts,omitempty"`
}

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

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

func (*FindNSClusterHostsResponse) ProtoMessage() {}

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

func (x *FindNSClusterHostsResponse) GetHosts() []string {
	if x != nil {
		return x.Hosts
	}
	return nil
}

// 查找用户可以使用的主机地址
type FindAvailableNSHostsForUserRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"`
}

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

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

func (*FindAvailableNSHostsForUserRequest) ProtoMessage() {}

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

func (x *FindAvailableNSHostsForUserRequest) GetUserId() int64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

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

	Hosts []string `protobuf:"bytes,1,rep,name=hosts,proto3" json:"hosts,omitempty"`
}

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

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

func (*FindAvailableNSHostsForUserResponse) ProtoMessage() {}

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

func (x *FindAvailableNSHostsForUserResponse) GetHosts() []string {
	if x != nil {
		return x.Hosts
	}
	return nil
}

// 查找应答模式
type FindNSClusterAnswerConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*FindNSClusterAnswerConfigRequest) ProtoMessage() {}

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

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

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

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

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

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

func (*FindNSClusterAnswerConfigResponse) ProtoMessage() {}

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

func (x *FindNSClusterAnswerConfigResponse) GetAnswerJSON() []byte {
	if x != nil {
		return x.AnswerJSON
	}
	return nil
}

// 设置应答模式
type UpdateNSClusterAnswerConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	AnswerJSON  []byte `protobuf:"bytes,2,opt,name=answerJSON,proto3" json:"answerJSON,omitempty"`
}

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

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

func (*UpdateNSClusterAnswerConfigRequest) ProtoMessage() {}

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

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

func (x *UpdateNSClusterAnswerConfigRequest) GetAnswerJSON() []byte {
	if x != nil {
		return x.AnswerJSON
	}
	return nil
}

// 查找SOA配置
type FindNSClusterSOAConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *FindNSClusterSOAConfigRequest) Reset() {
	*x = FindNSClusterSOAConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterSOAConfigRequest) ProtoMessage() {}

func (x *FindNSClusterSOAConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_cluster_proto_msgTypes[40]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindNSClusterSOAConfigRequest.ProtoReflect.Descriptor instead.
func (*FindNSClusterSOAConfigRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_cluster_proto_rawDescGZIP(), []int{40}
}

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

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

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

func (x *FindNSClusterSOAConfigResponse) Reset() {
	*x = FindNSClusterSOAConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FindNSClusterSOAConfigResponse) ProtoMessage() {}

func (x *FindNSClusterSOAConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_cluster_proto_msgTypes[41]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindNSClusterSOAConfigResponse.ProtoReflect.Descriptor instead.
func (*FindNSClusterSOAConfigResponse) Descriptor() ([]byte, []int) {
	return file_service_ns_cluster_proto_rawDescGZIP(), []int{41}
}

func (x *FindNSClusterSOAConfigResponse) GetSoaJSON() []byte {
	if x != nil {
		return x.SoaJSON
	}
	return nil
}

// 设置SOA配置
type UpdateNSClusterSOAConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NsClusterId int64  `protobuf:"varint,1,opt,name=nsClusterId,proto3" json:"nsClusterId,omitempty"`
	SoaJSON     []byte `protobuf:"bytes,2,opt,name=soaJSON,proto3" json:"soaJSON,omitempty"`
}

func (x *UpdateNSClusterSOAConfigRequest) Reset() {
	*x = UpdateNSClusterSOAConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_ns_cluster_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateNSClusterSOAConfigRequest) ProtoMessage() {}

func (x *UpdateNSClusterSOAConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_ns_cluster_proto_msgTypes[42]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateNSClusterSOAConfigRequest.ProtoReflect.Descriptor instead.
func (*UpdateNSClusterSOAConfigRequest) Descriptor() ([]byte, []int) {
	return file_service_ns_cluster_proto_rawDescGZIP(), []int{42}
}

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

func (x *UpdateNSClusterSOAConfigRequest) GetSoaJSON() []byte {
	if x != nil {
		return x.SoaJSON
	}
	return nil
}

var File_service_ns_cluster_proto protoreflect.FileDescriptor

var file_service_ns_cluster_proto_rawDesc = []byte{
	0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x73, 0x5f, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x1d,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x73, 0x5f,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x14, 0x0a,
	0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f,
	0x73, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x14, 0x0a,
	0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d,
	0x61, 0x69, 0x6c, 0x22, 0x3b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x9e, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 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, 0x12, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65,
	0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69,
	0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f,
	0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74,
	0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
	0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x74, 0x65, 0x63,
	0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64,
	0x65, 0x74, 0x65, 0x63, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63,
	0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74,
	0x73, 0x22, 0x41, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 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, 0x46, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x41,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x69, 0x0a, 0x1f,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 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, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x4a, 0x53,
	0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x4c, 0x6f, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x33, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x38, 0x0a, 0x14,
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x44, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x2b, 0x0a, 0x09, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x52, 0x09, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x15, 0x4c, 0x69, 0x73,
	0x74, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 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, 0x22, 0x47,
	0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x6e, 0x73, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70,
	0x62, 0x2e, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x73, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x41,
	0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x2d, 0x0a, 0x0a, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22,
	0x6f, 0x0a, 0x25, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 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, 0x24, 0x0a, 0x0d, 0x72, 0x65,
	0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e,
	0x22, 0x47, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	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, 0x4c, 0x0a, 0x24, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4a, 0x53,
	0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x41, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 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, 0x3a, 0x0a, 0x1e, 0x46, 0x69,
	0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43, 0x50, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74,
	0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x41, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	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, 0x3a, 0x0a, 0x1e, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74,
	0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6c,
	0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x41, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x3a, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64,
	0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x64,
	0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x64, 0x70,
	0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x41, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x48, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x3a, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x48, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6f, 0x68,
	0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x6f, 0x68, 0x4a,
	0x53, 0x4f, 0x4e, 0x22, 0x57, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43, 0x50, 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, 0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x57, 0x0a, 0x19,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54,
	0x4c, 0x53, 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, 0x18, 0x0a, 0x07, 0x74,
	0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6c,
	0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x57, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 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, 0x18, 0x0a, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x57,
	0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x44, 0x6f, 0x48, 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, 0x18, 0x0a,
	0x07, 0x64, 0x6f, 0x68, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
	0x64, 0x6f, 0x68, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x46, 0x0a, 0x26, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74,
	0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x22,
	0x46, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x55, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x78,
	0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 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, 0x3d, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64,
	0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x73, 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, 0x32, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x22, 0x3c, 0x0a, 0x22, 0x46,
	0x69, 0x6e, 0x64, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x53, 0x48, 0x6f,
	0x73, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x23, 0x46, 0x69, 0x6e,
	0x64, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x53, 0x48, 0x6f, 0x73, 0x74,
	0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x22, 0x44, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 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, 0x43, 0x0a, 0x21,
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73,
	0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x53, 0x4f,
	0x4e, 0x22, 0x66, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	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, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x73,
	0x77, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61,
	0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x41, 0x0a, 0x1d, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 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, 0x3a, 0x0a, 0x1e,
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x73, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x07, 0x73, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5d, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 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, 0x18, 0x0a,
	0x07, 0x73, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
	0x73, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x32, 0x83, 0x13, 0x0a, 0x10, 0x4e, 0x53, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0f,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12,
	0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62,
	0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43,
	0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f,
	0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x18, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x4c, 0x6f, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c,
	0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x0f, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x70,
	0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x12, 0x44, 0x0a, 0x0d, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70,
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e,
	0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 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, 0x47, 0x0a, 0x0e, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66,
	0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
	0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a,
	0x1e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x29, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e,
	0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x71, 0x0a, 0x1c, 0x66, 0x69,
	0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x75, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e,
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63,
	0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a,
	0x16, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43,
	0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43, 0x50, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e,
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43, 0x50,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43,
	0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x54, 0x43, 0x50, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x43, 0x50, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x2e,
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54,
	0x4c, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
	0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50,
	0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x44, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12,
	0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x44, 0x6f, 0x48, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46,
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x48, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70,
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44,
	0x6f, 0x48, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x44, 0x6f, 0x48, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x48, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x63, 0x0a, 0x1f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c,
	0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53,
	0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
	0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x66, 0x69,
	0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x44, 0x6f, 0x53, 0x50,
	0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46,
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x44, 0x6f, 0x53,
	0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x1d, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x44, 0x6f,
	0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	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, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62,
	0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x6f,
	0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e,
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x6f, 0x73,
	0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x66, 0x69,
	0x6e, 0x64, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x53, 0x48, 0x6f, 0x73,
	0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46,
	0x69, 0x6e, 0x64, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x53, 0x48, 0x6f,
	0x73, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x76, 0x61, 0x69, 0x6c,
	0x61, 0x62, 0x6c, 0x65, 0x4e, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73,
	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69,
	0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
	0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e,
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66,
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e,
	0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
	0x6e, 0x64, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x18,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53,
	0x4f, 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x4f, 0x41,
	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_cluster_proto_rawDescOnce sync.Once
	file_service_ns_cluster_proto_rawDescData = file_service_ns_cluster_proto_rawDesc
)

func file_service_ns_cluster_proto_rawDescGZIP() []byte {
	file_service_ns_cluster_proto_rawDescOnce.Do(func() {
		file_service_ns_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_ns_cluster_proto_rawDescData)
	})
	return file_service_ns_cluster_proto_rawDescData
}

var file_service_ns_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 43)
var file_service_ns_cluster_proto_goTypes = []interface{}{
	(*CreateNSClusterRequest)(nil),                 // 0: pb.CreateNSClusterRequest
	(*CreateNSClusterResponse)(nil),                // 1: pb.CreateNSClusterResponse
	(*UpdateNSClusterRequest)(nil),                 // 2: pb.UpdateNSClusterRequest
	(*FindNSClusterAccessLogRequest)(nil),          // 3: pb.FindNSClusterAccessLogRequest
	(*FindNSClusterAccessLogResponse)(nil),         // 4: pb.FindNSClusterAccessLogResponse
	(*UpdateNSClusterAccessLogRequest)(nil),        // 5: pb.UpdateNSClusterAccessLogRequest
	(*DeleteNSCluster)(nil),                        // 6: pb.DeleteNSCluster
	(*FindNSClusterRequest)(nil),                   // 7: pb.FindNSClusterRequest
	(*FindNSClusterResponse)(nil),                  // 8: pb.FindNSClusterResponse
	(*CountAllNSClustersRequest)(nil),              // 9: pb.CountAllNSClustersRequest
	(*ListNSClustersRequest)(nil),                  // 10: pb.ListNSClustersRequest
	(*ListNSClustersResponse)(nil),                 // 11: pb.ListNSClustersResponse
	(*FindAllNSClustersRequest)(nil),               // 12: pb.FindAllNSClustersRequest
	(*FindAllNSClustersResponse)(nil),              // 13: pb.FindAllNSClustersResponse
	(*UpdateNSClusterRecursionConfigRequest)(nil),  // 14: pb.UpdateNSClusterRecursionConfigRequest
	(*FindNSClusterRecursionConfigRequest)(nil),    // 15: pb.FindNSClusterRecursionConfigRequest
	(*FindNSClusterRecursionConfigResponse)(nil),   // 16: pb.FindNSClusterRecursionConfigResponse
	(*FindNSClusterTCPConfigRequest)(nil),          // 17: pb.FindNSClusterTCPConfigRequest
	(*FindNSClusterTCPConfigResponse)(nil),         // 18: pb.FindNSClusterTCPConfigResponse
	(*FindNSClusterTLSConfigRequest)(nil),          // 19: pb.FindNSClusterTLSConfigRequest
	(*FindNSClusterTLSConfigResponse)(nil),         // 20: pb.FindNSClusterTLSConfigResponse
	(*FindNSClusterUDPConfigRequest)(nil),          // 21: pb.FindNSClusterUDPConfigRequest
	(*FindNSClusterUDPConfigResponse)(nil),         // 22: pb.FindNSClusterUDPConfigResponse
	(*FindNSClusterDoHConfigRequest)(nil),          // 23: pb.FindNSClusterDoHConfigRequest
	(*FindNSClusterDoHConfigResponse)(nil),         // 24: pb.FindNSClusterDoHConfigResponse
	(*UpdateNSClusterTCPRequest)(nil),              // 25: pb.UpdateNSClusterTCPRequest
	(*UpdateNSClusterTLSRequest)(nil),              // 26: pb.UpdateNSClusterTLSRequest
	(*UpdateNSClusterUDPRequest)(nil),              // 27: pb.UpdateNSClusterUDPRequest
	(*UpdateNSClusterDoHRequest)(nil),              // 28: pb.UpdateNSClusterDoHRequest
	(*CountAllNSClustersWithSSLCertIdRequest)(nil), // 29: pb.CountAllNSClustersWithSSLCertIdRequest
	(*FindNSClusterDDoSProtectionRequest)(nil),     // 30: pb.FindNSClusterDDoSProtectionRequest
	(*FindNSClusterDDoSProtectionResponse)(nil),    // 31: pb.FindNSClusterDDoSProtectionResponse
	(*UpdateNSClusterDDoSProtectionRequest)(nil),   // 32: pb.UpdateNSClusterDDoSProtectionRequest
	(*FindNSClusterHostsRequest)(nil),              // 33: pb.FindNSClusterHostsRequest
	(*FindNSClusterHostsResponse)(nil),             // 34: pb.FindNSClusterHostsResponse
	(*FindAvailableNSHostsForUserRequest)(nil),     // 35: pb.FindAvailableNSHostsForUserRequest
	(*FindAvailableNSHostsForUserResponse)(nil),    // 36: pb.FindAvailableNSHostsForUserResponse
	(*FindNSClusterAnswerConfigRequest)(nil),       // 37: pb.FindNSClusterAnswerConfigRequest
	(*FindNSClusterAnswerConfigResponse)(nil),      // 38: pb.FindNSClusterAnswerConfigResponse
	(*UpdateNSClusterAnswerConfigRequest)(nil),     // 39: pb.UpdateNSClusterAnswerConfigRequest
	(*FindNSClusterSOAConfigRequest)(nil),          // 40: pb.FindNSClusterSOAConfigRequest
	(*FindNSClusterSOAConfigResponse)(nil),         // 41: pb.FindNSClusterSOAConfigResponse
	(*UpdateNSClusterSOAConfigRequest)(nil),        // 42: pb.UpdateNSClusterSOAConfigRequest
	(*NSCluster)(nil),                              // 43: pb.NSCluster
	(*RPCSuccess)(nil),                             // 44: pb.RPCSuccess
	(*RPCCountResponse)(nil),                       // 45: pb.RPCCountResponse
}
var file_service_ns_cluster_proto_depIdxs = []int32{
	43, // 0: pb.FindNSClusterResponse.nsCluster:type_name -> pb.NSCluster
	43, // 1: pb.ListNSClustersResponse.nsClusters:type_name -> pb.NSCluster
	43, // 2: pb.FindAllNSClustersResponse.nsClusters:type_name -> pb.NSCluster
	0,  // 3: pb.NSClusterService.createNSCluster:input_type -> pb.CreateNSClusterRequest
	2,  // 4: pb.NSClusterService.updateNSCluster:input_type -> pb.UpdateNSClusterRequest
	3,  // 5: pb.NSClusterService.findNSClusterAccessLog:input_type -> pb.FindNSClusterAccessLogRequest
	5,  // 6: pb.NSClusterService.updateNSClusterAccessLog:input_type -> pb.UpdateNSClusterAccessLogRequest
	6,  // 7: pb.NSClusterService.deleteNSCluster:input_type -> pb.DeleteNSCluster
	7,  // 8: pb.NSClusterService.findNSCluster:input_type -> pb.FindNSClusterRequest
	9,  // 9: pb.NSClusterService.countAllNSClusters:input_type -> pb.CountAllNSClustersRequest
	10, // 10: pb.NSClusterService.listNSClusters:input_type -> pb.ListNSClustersRequest
	12, // 11: pb.NSClusterService.findAllNSClusters:input_type -> pb.FindAllNSClustersRequest
	14, // 12: pb.NSClusterService.updateNSClusterRecursionConfig:input_type -> pb.UpdateNSClusterRecursionConfigRequest
	15, // 13: pb.NSClusterService.findNSClusterRecursionConfig:input_type -> pb.FindNSClusterRecursionConfigRequest
	17, // 14: pb.NSClusterService.findNSClusterTCPConfig:input_type -> pb.FindNSClusterTCPConfigRequest
	25, // 15: pb.NSClusterService.updateNSClusterTCP:input_type -> pb.UpdateNSClusterTCPRequest
	19, // 16: pb.NSClusterService.findNSClusterTLSConfig:input_type -> pb.FindNSClusterTLSConfigRequest
	26, // 17: pb.NSClusterService.updateNSClusterTLS:input_type -> pb.UpdateNSClusterTLSRequest
	21, // 18: pb.NSClusterService.findNSClusterUDPConfig:input_type -> pb.FindNSClusterUDPConfigRequest
	27, // 19: pb.NSClusterService.updateNSClusterUDP:input_type -> pb.UpdateNSClusterUDPRequest
	23, // 20: pb.NSClusterService.findNSClusterDoHConfig:input_type -> pb.FindNSClusterDoHConfigRequest
	28, // 21: pb.NSClusterService.updateNSClusterDoH:input_type -> pb.UpdateNSClusterDoHRequest
	29, // 22: pb.NSClusterService.countAllNSClustersWithSSLCertId:input_type -> pb.CountAllNSClustersWithSSLCertIdRequest
	30, // 23: pb.NSClusterService.findNSClusterDDoSProtection:input_type -> pb.FindNSClusterDDoSProtectionRequest
	32, // 24: pb.NSClusterService.updateNSClusterDDoSProtection:input_type -> pb.UpdateNSClusterDDoSProtectionRequest
	33, // 25: pb.NSClusterService.findNSClusterHosts:input_type -> pb.FindNSClusterHostsRequest
	35, // 26: pb.NSClusterService.findAvailableNSHostsForUser:input_type -> pb.FindAvailableNSHostsForUserRequest
	37, // 27: pb.NSClusterService.findNSClusterAnswerConfig:input_type -> pb.FindNSClusterAnswerConfigRequest
	39, // 28: pb.NSClusterService.updateNSClusterAnswerConfig:input_type -> pb.UpdateNSClusterAnswerConfigRequest
	40, // 29: pb.NSClusterService.findNSClusterSOAConfig:input_type -> pb.FindNSClusterSOAConfigRequest
	42, // 30: pb.NSClusterService.updateNSClusterSOAConfig:input_type -> pb.UpdateNSClusterSOAConfigRequest
	1,  // 31: pb.NSClusterService.createNSCluster:output_type -> pb.CreateNSClusterResponse
	44, // 32: pb.NSClusterService.updateNSCluster:output_type -> pb.RPCSuccess
	4,  // 33: pb.NSClusterService.findNSClusterAccessLog:output_type -> pb.FindNSClusterAccessLogResponse
	44, // 34: pb.NSClusterService.updateNSClusterAccessLog:output_type -> pb.RPCSuccess
	44, // 35: pb.NSClusterService.deleteNSCluster:output_type -> pb.RPCSuccess
	8,  // 36: pb.NSClusterService.findNSCluster:output_type -> pb.FindNSClusterResponse
	45, // 37: pb.NSClusterService.countAllNSClusters:output_type -> pb.RPCCountResponse
	11, // 38: pb.NSClusterService.listNSClusters:output_type -> pb.ListNSClustersResponse
	13, // 39: pb.NSClusterService.findAllNSClusters:output_type -> pb.FindAllNSClustersResponse
	44, // 40: pb.NSClusterService.updateNSClusterRecursionConfig:output_type -> pb.RPCSuccess
	16, // 41: pb.NSClusterService.findNSClusterRecursionConfig:output_type -> pb.FindNSClusterRecursionConfigResponse
	18, // 42: pb.NSClusterService.findNSClusterTCPConfig:output_type -> pb.FindNSClusterTCPConfigResponse
	44, // 43: pb.NSClusterService.updateNSClusterTCP:output_type -> pb.RPCSuccess
	20, // 44: pb.NSClusterService.findNSClusterTLSConfig:output_type -> pb.FindNSClusterTLSConfigResponse
	44, // 45: pb.NSClusterService.updateNSClusterTLS:output_type -> pb.RPCSuccess
	22, // 46: pb.NSClusterService.findNSClusterUDPConfig:output_type -> pb.FindNSClusterUDPConfigResponse
	44, // 47: pb.NSClusterService.updateNSClusterUDP:output_type -> pb.RPCSuccess
	24, // 48: pb.NSClusterService.findNSClusterDoHConfig:output_type -> pb.FindNSClusterDoHConfigResponse
	44, // 49: pb.NSClusterService.updateNSClusterDoH:output_type -> pb.RPCSuccess
	45, // 50: pb.NSClusterService.countAllNSClustersWithSSLCertId:output_type -> pb.RPCCountResponse
	31, // 51: pb.NSClusterService.findNSClusterDDoSProtection:output_type -> pb.FindNSClusterDDoSProtectionResponse
	44, // 52: pb.NSClusterService.updateNSClusterDDoSProtection:output_type -> pb.RPCSuccess
	34, // 53: pb.NSClusterService.findNSClusterHosts:output_type -> pb.FindNSClusterHostsResponse
	36, // 54: pb.NSClusterService.findAvailableNSHostsForUser:output_type -> pb.FindAvailableNSHostsForUserResponse
	38, // 55: pb.NSClusterService.findNSClusterAnswerConfig:output_type -> pb.FindNSClusterAnswerConfigResponse
	44, // 56: pb.NSClusterService.updateNSClusterAnswerConfig:output_type -> pb.RPCSuccess
	41, // 57: pb.NSClusterService.findNSClusterSOAConfig:output_type -> pb.FindNSClusterSOAConfigResponse
	44, // 58: pb.NSClusterService.updateNSClusterSOAConfig:output_type -> pb.RPCSuccess
	31, // [31:59] is the sub-list for method output_type
	3,  // [3:31] is the sub-list for method input_type
	3,  // [3:3] is the sub-list for extension type_name
	3,  // [3:3] is the sub-list for extension extendee
	0,  // [0:3] is the sub-list for field type_name
}

func init() { file_service_ns_cluster_proto_init() }
func file_service_ns_cluster_proto_init() {
	if File_service_ns_cluster_proto != nil {
		return
	}
	file_models_model_ns_cluster_proto_init()
	file_models_rpc_messages_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_service_ns_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateNSClusterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateNSClusterResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterAccessLogRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterAccessLogResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterAccessLogRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteNSCluster); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountAllNSClustersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListNSClustersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListNSClustersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAllNSClustersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAllNSClustersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterRecursionConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterRecursionConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterRecursionConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterTCPConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterTCPConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterTLSConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterTLSConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterUDPConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterUDPConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterDoHConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterDoHConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterTCPRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterTLSRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterUDPRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterDoHRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountAllNSClustersWithSSLCertIdRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterDDoSProtectionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterDDoSProtectionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterDDoSProtectionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterHostsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterHostsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAvailableNSHostsForUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAvailableNSHostsForUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterAnswerConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterAnswerConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterAnswerConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterSOAConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindNSClusterSOAConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_ns_cluster_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateNSClusterSOAConfigRequest); 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_cluster_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   43,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_service_ns_cluster_proto_goTypes,
		DependencyIndexes: file_service_ns_cluster_proto_depIdxs,
		MessageInfos:      file_service_ns_cluster_proto_msgTypes,
	}.Build()
	File_service_ns_cluster_proto = out.File
	file_service_ns_cluster_proto_rawDesc = nil
	file_service_ns_cluster_proto_goTypes = nil
	file_service_ns_cluster_proto_depIdxs = nil
}
