// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v3.19.4 // source: service_node_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 FindAllEnabledNodeClustersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FindAllEnabledNodeClustersRequest) Reset() { *x = FindAllEnabledNodeClustersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersRequest) ProtoMessage() {} func (x *FindAllEnabledNodeClustersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{0} } type FindAllEnabledNodeClustersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *FindAllEnabledNodeClustersResponse) Reset() { *x = FindAllEnabledNodeClustersResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersResponse) ProtoMessage() {} func (x *FindAllEnabledNodeClustersResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{1} } func (x *FindAllEnabledNodeClustersResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 创建集群 type CreateNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` NodeGrantId int64 `protobuf:"varint,2,opt,name=nodeGrantId,proto3" json:"nodeGrantId,omitempty"` InstallDir string `protobuf:"bytes,3,opt,name=installDir,proto3" json:"installDir,omitempty"` DnsDomainId int64 `protobuf:"varint,4,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` DnsName string `protobuf:"bytes,5,opt,name=dnsName,proto3" json:"dnsName,omitempty"` DnsTTL int32 `protobuf:"varint,9,opt,name=dnsTTL,proto3" json:"dnsTTL,omitempty"` HttpCachePolicyId int64 `protobuf:"varint,6,opt,name=httpCachePolicyId,proto3" json:"httpCachePolicyId,omitempty"` HttpFirewallPolicyId int64 `protobuf:"varint,7,opt,name=httpFirewallPolicyId,proto3" json:"httpFirewallPolicyId,omitempty"` SystemServicesJSON []byte `protobuf:"bytes,8,opt,name=systemServicesJSON,proto3" json:"systemServicesJSON,omitempty"` // 系统服务设置 GlobalServerConfigJSON []byte `protobuf:"bytes,10,opt,name=globalServerConfigJSON,proto3" json:"globalServerConfigJSON,omitempty"` // 服务全局设置 AutoInstallNftables bool `protobuf:"varint,11,opt,name=autoInstallNftables,proto3" json:"autoInstallNftables,omitempty"` // 自动安装nftables AutoSystemTuning bool `protobuf:"varint,12,opt,name=autoSystemTuning,proto3" json:"autoSystemTuning,omitempty"` // 是否自动调节系统参数 AutoTrimDisks bool `protobuf:"varint,13,opt,name=autoTrimDisks,proto3" json:"autoTrimDisks,omitempty"` // 是否自动TRIM硬盘 MaxConcurrentReads int32 `protobuf:"varint,15,opt,name=maxConcurrentReads,proto3" json:"maxConcurrentReads,omitempty"` // 最大并发读 MaxConcurrentWrites int32 `protobuf:"varint,16,opt,name=maxConcurrentWrites,proto3" json:"maxConcurrentWrites,omitempty"` // 最大并发写 } func (x *CreateNodeClusterRequest) Reset() { *x = CreateNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateNodeClusterRequest) ProtoMessage() {} func (x *CreateNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CreateNodeClusterRequest.ProtoReflect.Descriptor instead. func (*CreateNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{2} } func (x *CreateNodeClusterRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *CreateNodeClusterRequest) GetNodeGrantId() int64 { if x != nil { return x.NodeGrantId } return 0 } func (x *CreateNodeClusterRequest) GetInstallDir() string { if x != nil { return x.InstallDir } return "" } func (x *CreateNodeClusterRequest) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } func (x *CreateNodeClusterRequest) GetDnsName() string { if x != nil { return x.DnsName } return "" } func (x *CreateNodeClusterRequest) GetDnsTTL() int32 { if x != nil { return x.DnsTTL } return 0 } func (x *CreateNodeClusterRequest) GetHttpCachePolicyId() int64 { if x != nil { return x.HttpCachePolicyId } return 0 } func (x *CreateNodeClusterRequest) GetHttpFirewallPolicyId() int64 { if x != nil { return x.HttpFirewallPolicyId } return 0 } func (x *CreateNodeClusterRequest) GetSystemServicesJSON() []byte { if x != nil { return x.SystemServicesJSON } return nil } func (x *CreateNodeClusterRequest) GetGlobalServerConfigJSON() []byte { if x != nil { return x.GlobalServerConfigJSON } return nil } func (x *CreateNodeClusterRequest) GetAutoInstallNftables() bool { if x != nil { return x.AutoInstallNftables } return false } func (x *CreateNodeClusterRequest) GetAutoSystemTuning() bool { if x != nil { return x.AutoSystemTuning } return false } func (x *CreateNodeClusterRequest) GetAutoTrimDisks() bool { if x != nil { return x.AutoTrimDisks } return false } func (x *CreateNodeClusterRequest) GetMaxConcurrentReads() int32 { if x != nil { return x.MaxConcurrentReads } return 0 } func (x *CreateNodeClusterRequest) GetMaxConcurrentWrites() int32 { if x != nil { return x.MaxConcurrentWrites } return 0 } type CreateNodeClusterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *CreateNodeClusterResponse) Reset() { *x = CreateNodeClusterResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateNodeClusterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateNodeClusterResponse) ProtoMessage() {} func (x *CreateNodeClusterResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CreateNodeClusterResponse.ProtoReflect.Descriptor instead. func (*CreateNodeClusterResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{3} } func (x *CreateNodeClusterResponse) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } // 修改集群 type UpdateNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` NodeGrantId int64 `protobuf:"varint,3,opt,name=nodeGrantId,proto3" json:"nodeGrantId,omitempty"` InstallDir string `protobuf:"bytes,4,opt,name=installDir,proto3" json:"installDir,omitempty"` TimeZone string `protobuf:"bytes,5,opt,name=timeZone,proto3" json:"timeZone,omitempty"` NodeMaxThreads int32 `protobuf:"varint,6,opt,name=nodeMaxThreads,proto3" json:"nodeMaxThreads,omitempty"` AutoOpenPorts bool `protobuf:"varint,8,opt,name=autoOpenPorts,proto3" json:"autoOpenPorts,omitempty"` ClockJSON []byte `protobuf:"bytes,9,opt,name=clockJSON,proto3" json:"clockJSON,omitempty"` AutoRemoteStart bool `protobuf:"varint,10,opt,name=autoRemoteStart,proto3" json:"autoRemoteStart,omitempty"` AutoInstallNftables bool `protobuf:"varint,11,opt,name=autoInstallNftables,proto3" json:"autoInstallNftables,omitempty"` SshParamsJSON []byte `protobuf:"bytes,12,opt,name=sshParamsJSON,proto3" json:"sshParamsJSON,omitempty"` AutoSystemTuning bool `protobuf:"varint,13,opt,name=autoSystemTuning,proto3" json:"autoSystemTuning,omitempty"` // 是否自动调节系统参数 AutoTrimDisks bool `protobuf:"varint,14,opt,name=autoTrimDisks,proto3" json:"autoTrimDisks,omitempty"` // 是否自动TRIM硬盘 MaxConcurrentReads int32 `protobuf:"varint,15,opt,name=maxConcurrentReads,proto3" json:"maxConcurrentReads,omitempty"` // 最大并发读 MaxConcurrentWrites int32 `protobuf:"varint,16,opt,name=maxConcurrentWrites,proto3" json:"maxConcurrentWrites,omitempty"` // 最大并发写 } func (x *UpdateNodeClusterRequest) Reset() { *x = UpdateNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterRequest) ProtoMessage() {} func (x *UpdateNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeClusterRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{4} } func (x *UpdateNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateNodeClusterRequest) GetNodeGrantId() int64 { if x != nil { return x.NodeGrantId } return 0 } func (x *UpdateNodeClusterRequest) GetInstallDir() string { if x != nil { return x.InstallDir } return "" } func (x *UpdateNodeClusterRequest) GetTimeZone() string { if x != nil { return x.TimeZone } return "" } func (x *UpdateNodeClusterRequest) GetNodeMaxThreads() int32 { if x != nil { return x.NodeMaxThreads } return 0 } func (x *UpdateNodeClusterRequest) GetAutoOpenPorts() bool { if x != nil { return x.AutoOpenPorts } return false } func (x *UpdateNodeClusterRequest) GetClockJSON() []byte { if x != nil { return x.ClockJSON } return nil } func (x *UpdateNodeClusterRequest) GetAutoRemoteStart() bool { if x != nil { return x.AutoRemoteStart } return false } func (x *UpdateNodeClusterRequest) GetAutoInstallNftables() bool { if x != nil { return x.AutoInstallNftables } return false } func (x *UpdateNodeClusterRequest) GetSshParamsJSON() []byte { if x != nil { return x.SshParamsJSON } return nil } func (x *UpdateNodeClusterRequest) GetAutoSystemTuning() bool { if x != nil { return x.AutoSystemTuning } return false } func (x *UpdateNodeClusterRequest) GetAutoTrimDisks() bool { if x != nil { return x.AutoTrimDisks } return false } func (x *UpdateNodeClusterRequest) GetMaxConcurrentReads() int32 { if x != nil { return x.MaxConcurrentReads } return 0 } func (x *UpdateNodeClusterRequest) GetMaxConcurrentWrites() int32 { if x != nil { return x.MaxConcurrentWrites } return 0 } // 删除集群 type DeleteNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *DeleteNodeClusterRequest) Reset() { *x = DeleteNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteNodeClusterRequest) ProtoMessage() {} func (x *DeleteNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 DeleteNodeClusterRequest.ProtoReflect.Descriptor instead. func (*DeleteNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{5} } func (x *DeleteNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } // 查找单个集群信息 type FindEnabledNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterRequest) Reset() { *x = FindEnabledNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterRequest) ProtoMessage() {} func (x *FindEnabledNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeClusterRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{6} } func (x *FindEnabledNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeCluster *NodeCluster `protobuf:"bytes,1,opt,name=nodeCluster,proto3" json:"nodeCluster,omitempty"` } func (x *FindEnabledNodeClusterResponse) Reset() { *x = FindEnabledNodeClusterResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeClusterResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{7} } func (x *FindEnabledNodeClusterResponse) GetNodeCluster() *NodeCluster { if x != nil { return x.NodeCluster } return nil } // 查找集群的API节点信息 type FindAPINodesWithNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindAPINodesWithNodeClusterRequest) Reset() { *x = FindAPINodesWithNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAPINodesWithNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAPINodesWithNodeClusterRequest) ProtoMessage() {} func (x *FindAPINodesWithNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAPINodesWithNodeClusterRequest.ProtoReflect.Descriptor instead. func (*FindAPINodesWithNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{8} } func (x *FindAPINodesWithNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindAPINodesWithNodeClusterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UseAllAPINodes bool `protobuf:"varint,1,opt,name=useAllAPINodes,proto3" json:"useAllAPINodes,omitempty"` ApiNodes []*APINode `protobuf:"bytes,2,rep,name=apiNodes,proto3" json:"apiNodes,omitempty"` } func (x *FindAPINodesWithNodeClusterResponse) Reset() { *x = FindAPINodesWithNodeClusterResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAPINodesWithNodeClusterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAPINodesWithNodeClusterResponse) ProtoMessage() {} func (x *FindAPINodesWithNodeClusterResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAPINodesWithNodeClusterResponse.ProtoReflect.Descriptor instead. func (*FindAPINodesWithNodeClusterResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{9} } func (x *FindAPINodesWithNodeClusterResponse) GetUseAllAPINodes() bool { if x != nil { return x.UseAllAPINodes } return false } func (x *FindAPINodesWithNodeClusterResponse) GetApiNodes() []*APINode { if x != nil { return x.ApiNodes } return nil } // 计算所有集群数量 type CountAllEnabledNodeClustersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` } func (x *CountAllEnabledNodeClustersRequest) Reset() { *x = CountAllEnabledNodeClustersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodeClustersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodeClustersRequest) ProtoMessage() {} func (x *CountAllEnabledNodeClustersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodeClustersRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodeClustersRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{10} } func (x *CountAllEnabledNodeClustersRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } // 列出单页集群 type ListEnabledNodeClustersRequest 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"` Keyword string `protobuf:"bytes,3,opt,name=keyword,proto3" json:"keyword,omitempty"` // 可选项,搜索关键词 IdDesc bool `protobuf:"varint,4,opt,name=idDesc,proto3" json:"idDesc,omitempty"` // 可选项,是否按照ID倒序排列 IdAsc bool `protobuf:"varint,5,opt,name=idAsc,proto3" json:"idAsc,omitempty"` // 可选项,是否按照ID正序排列 } func (x *ListEnabledNodeClustersRequest) Reset() { *x = ListEnabledNodeClustersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnabledNodeClustersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnabledNodeClustersRequest) ProtoMessage() {} func (x *ListEnabledNodeClustersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 ListEnabledNodeClustersRequest.ProtoReflect.Descriptor instead. func (*ListEnabledNodeClustersRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{11} } func (x *ListEnabledNodeClustersRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *ListEnabledNodeClustersRequest) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *ListEnabledNodeClustersRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *ListEnabledNodeClustersRequest) GetIdDesc() bool { if x != nil { return x.IdDesc } return false } func (x *ListEnabledNodeClustersRequest) GetIdAsc() bool { if x != nil { return x.IdAsc } return false } type ListEnabledNodeClustersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *ListEnabledNodeClustersResponse) Reset() { *x = ListEnabledNodeClustersResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnabledNodeClustersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnabledNodeClustersResponse) ProtoMessage() {} func (x *ListEnabledNodeClustersResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 ListEnabledNodeClustersResponse.ProtoReflect.Descriptor instead. func (*ListEnabledNodeClustersResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{12} } func (x *ListEnabledNodeClustersResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 查找集群的健康检查配置 type FindNodeClusterHealthCheckConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindNodeClusterHealthCheckConfigRequest) Reset() { *x = FindNodeClusterHealthCheckConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterHealthCheckConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterHealthCheckConfigRequest) ProtoMessage() {} func (x *FindNodeClusterHealthCheckConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindNodeClusterHealthCheckConfigRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterHealthCheckConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{13} } func (x *FindNodeClusterHealthCheckConfigRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindNodeClusterHealthCheckConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HealthCheckJSON []byte `protobuf:"bytes,1,opt,name=healthCheckJSON,proto3" json:"healthCheckJSON,omitempty"` } func (x *FindNodeClusterHealthCheckConfigResponse) Reset() { *x = FindNodeClusterHealthCheckConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterHealthCheckConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterHealthCheckConfigResponse) ProtoMessage() {} func (x *FindNodeClusterHealthCheckConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindNodeClusterHealthCheckConfigResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterHealthCheckConfigResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{14} } func (x *FindNodeClusterHealthCheckConfigResponse) GetHealthCheckJSON() []byte { if x != nil { return x.HealthCheckJSON } return nil } // 修改集群健康检查设置 type UpdateNodeClusterHealthCheckRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` HealthCheckJSON []byte `protobuf:"bytes,2,opt,name=healthCheckJSON,proto3" json:"healthCheckJSON,omitempty"` } func (x *UpdateNodeClusterHealthCheckRequest) Reset() { *x = UpdateNodeClusterHealthCheckRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterHealthCheckRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterHealthCheckRequest) ProtoMessage() {} func (x *UpdateNodeClusterHealthCheckRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeClusterHealthCheckRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterHealthCheckRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{15} } func (x *UpdateNodeClusterHealthCheckRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterHealthCheckRequest) GetHealthCheckJSON() []byte { if x != nil { return x.HealthCheckJSON } return nil } // 执行健康检查 type ExecuteNodeClusterHealthCheckRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *ExecuteNodeClusterHealthCheckRequest) Reset() { *x = ExecuteNodeClusterHealthCheckRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteNodeClusterHealthCheckRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteNodeClusterHealthCheckRequest) ProtoMessage() {} func (x *ExecuteNodeClusterHealthCheckRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 ExecuteNodeClusterHealthCheckRequest.ProtoReflect.Descriptor instead. func (*ExecuteNodeClusterHealthCheckRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{16} } func (x *ExecuteNodeClusterHealthCheckRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type ExecuteNodeClusterHealthCheckResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Results []*ExecuteNodeClusterHealthCheckResponse_Result `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` } func (x *ExecuteNodeClusterHealthCheckResponse) Reset() { *x = ExecuteNodeClusterHealthCheckResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteNodeClusterHealthCheckResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteNodeClusterHealthCheckResponse) ProtoMessage() {} func (x *ExecuteNodeClusterHealthCheckResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 ExecuteNodeClusterHealthCheckResponse.ProtoReflect.Descriptor instead. func (*ExecuteNodeClusterHealthCheckResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{17} } func (x *ExecuteNodeClusterHealthCheckResponse) GetResults() []*ExecuteNodeClusterHealthCheckResponse_Result { if x != nil { return x.Results } return nil } // 计算使用某个认证的集群数量 type CountAllEnabledNodeClustersWithNodeGrantIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeGrantId int64 `protobuf:"varint,1,opt,name=nodeGrantId,proto3" json:"nodeGrantId,omitempty"` } func (x *CountAllEnabledNodeClustersWithNodeGrantIdRequest) Reset() { *x = CountAllEnabledNodeClustersWithNodeGrantIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodeClustersWithNodeGrantIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodeClustersWithNodeGrantIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodeClustersWithNodeGrantIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodeClustersWithNodeGrantIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodeClustersWithNodeGrantIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{18} } func (x *CountAllEnabledNodeClustersWithNodeGrantIdRequest) GetNodeGrantId() int64 { if x != nil { return x.NodeGrantId } return 0 } // 查找使用某个认证的所有集群 type FindAllEnabledNodeClustersWithNodeGrantIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeGrantId int64 `protobuf:"varint,1,opt,name=nodeGrantId,proto3" json:"nodeGrantId,omitempty"` } func (x *FindAllEnabledNodeClustersWithNodeGrantIdRequest) Reset() { *x = FindAllEnabledNodeClustersWithNodeGrantIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithNodeGrantIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithNodeGrantIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithNodeGrantIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithNodeGrantIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithNodeGrantIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{19} } func (x *FindAllEnabledNodeClustersWithNodeGrantIdRequest) GetNodeGrantId() int64 { if x != nil { return x.NodeGrantId } return 0 } type FindAllEnabledNodeClustersWithNodeGrantIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *FindAllEnabledNodeClustersWithNodeGrantIdResponse) Reset() { *x = FindAllEnabledNodeClustersWithNodeGrantIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithNodeGrantIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithNodeGrantIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithNodeGrantIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithNodeGrantIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithNodeGrantIdResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{20} } func (x *FindAllEnabledNodeClustersWithNodeGrantIdResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 查找集群的DNS配置 type FindEnabledNodeClusterDNSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterDNSRequest) Reset() { *x = FindEnabledNodeClusterDNSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterDNSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterDNSRequest) ProtoMessage() {} func (x *FindEnabledNodeClusterDNSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeClusterDNSRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterDNSRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{21} } func (x *FindEnabledNodeClusterDNSRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterDNSResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Domain *DNSDomain `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` Provider *DNSProvider `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` DefaultRoute string `protobuf:"bytes,6,opt,name=defaultRoute,proto3" json:"defaultRoute,omitempty"` NodesAutoSync bool `protobuf:"varint,4,opt,name=nodesAutoSync,proto3" json:"nodesAutoSync,omitempty"` ServersAutoSync bool `protobuf:"varint,5,opt,name=serversAutoSync,proto3" json:"serversAutoSync,omitempty"` CnameRecords []string `protobuf:"bytes,7,rep,name=cnameRecords,proto3" json:"cnameRecords,omitempty"` Ttl int32 `protobuf:"varint,8,opt,name=ttl,proto3" json:"ttl,omitempty"` CnameAsDomain bool `protobuf:"varint,9,opt,name=cnameAsDomain,proto3" json:"cnameAsDomain,omitempty"` IncludingLnNodes bool `protobuf:"varint,10,opt,name=includingLnNodes,proto3" json:"includingLnNodes,omitempty"` } func (x *FindEnabledNodeClusterDNSResponse) Reset() { *x = FindEnabledNodeClusterDNSResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterDNSResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterDNSResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterDNSResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeClusterDNSResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterDNSResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{22} } func (x *FindEnabledNodeClusterDNSResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *FindEnabledNodeClusterDNSResponse) GetDomain() *DNSDomain { if x != nil { return x.Domain } return nil } func (x *FindEnabledNodeClusterDNSResponse) GetProvider() *DNSProvider { if x != nil { return x.Provider } return nil } func (x *FindEnabledNodeClusterDNSResponse) GetDefaultRoute() string { if x != nil { return x.DefaultRoute } return "" } func (x *FindEnabledNodeClusterDNSResponse) GetNodesAutoSync() bool { if x != nil { return x.NodesAutoSync } return false } func (x *FindEnabledNodeClusterDNSResponse) GetServersAutoSync() bool { if x != nil { return x.ServersAutoSync } return false } func (x *FindEnabledNodeClusterDNSResponse) GetCnameRecords() []string { if x != nil { return x.CnameRecords } return nil } func (x *FindEnabledNodeClusterDNSResponse) GetTtl() int32 { if x != nil { return x.Ttl } return 0 } func (x *FindEnabledNodeClusterDNSResponse) GetCnameAsDomain() bool { if x != nil { return x.CnameAsDomain } return false } func (x *FindEnabledNodeClusterDNSResponse) GetIncludingLnNodes() bool { if x != nil { return x.IncludingLnNodes } return false } // 计算使用某个DNS服务商的集群数量 type CountAllEnabledNodeClustersWithDNSProviderIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DnsProviderId int64 `protobuf:"varint,1,opt,name=dnsProviderId,proto3" json:"dnsProviderId,omitempty"` } func (x *CountAllEnabledNodeClustersWithDNSProviderIdRequest) Reset() { *x = CountAllEnabledNodeClustersWithDNSProviderIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodeClustersWithDNSProviderIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodeClustersWithDNSProviderIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodeClustersWithDNSProviderIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodeClustersWithDNSProviderIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodeClustersWithDNSProviderIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{23} } func (x *CountAllEnabledNodeClustersWithDNSProviderIdRequest) GetDnsProviderId() int64 { if x != nil { return x.DnsProviderId } return 0 } // 计算使用某个DNS域名的集群数量 type CountAllEnabledNodeClustersWithDNSDomainIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DnsDomainId int64 `protobuf:"varint,1,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` } func (x *CountAllEnabledNodeClustersWithDNSDomainIdRequest) Reset() { *x = CountAllEnabledNodeClustersWithDNSDomainIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodeClustersWithDNSDomainIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodeClustersWithDNSDomainIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodeClustersWithDNSDomainIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodeClustersWithDNSDomainIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodeClustersWithDNSDomainIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{24} } func (x *CountAllEnabledNodeClustersWithDNSDomainIdRequest) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } // 查找使用某个域名的所有集群 type FindAllEnabledNodeClustersWithDNSDomainIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DnsDomainId int64 `protobuf:"varint,1,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` } func (x *FindAllEnabledNodeClustersWithDNSDomainIdRequest) Reset() { *x = FindAllEnabledNodeClustersWithDNSDomainIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithDNSDomainIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithDNSDomainIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithDNSDomainIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithDNSDomainIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithDNSDomainIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{25} } func (x *FindAllEnabledNodeClustersWithDNSDomainIdRequest) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } type FindAllEnabledNodeClustersWithDNSDomainIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *FindAllEnabledNodeClustersWithDNSDomainIdResponse) Reset() { *x = FindAllEnabledNodeClustersWithDNSDomainIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithDNSDomainIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithDNSDomainIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithDNSDomainIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithDNSDomainIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithDNSDomainIdResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{26} } func (x *FindAllEnabledNodeClustersWithDNSDomainIdResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 检查集群域名是否已经被使用 type CheckNodeClusterDNSNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` DnsName string `protobuf:"bytes,2,opt,name=dnsName,proto3" json:"dnsName,omitempty"` } func (x *CheckNodeClusterDNSNameRequest) Reset() { *x = CheckNodeClusterDNSNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckNodeClusterDNSNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckNodeClusterDNSNameRequest) ProtoMessage() {} func (x *CheckNodeClusterDNSNameRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CheckNodeClusterDNSNameRequest.ProtoReflect.Descriptor instead. func (*CheckNodeClusterDNSNameRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{27} } func (x *CheckNodeClusterDNSNameRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CheckNodeClusterDNSNameRequest) GetDnsName() string { if x != nil { return x.DnsName } return "" } type CheckNodeClusterDNSNameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsUsed bool `protobuf:"varint,1,opt,name=isUsed,proto3" json:"isUsed,omitempty"` } func (x *CheckNodeClusterDNSNameResponse) Reset() { *x = CheckNodeClusterDNSNameResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckNodeClusterDNSNameResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckNodeClusterDNSNameResponse) ProtoMessage() {} func (x *CheckNodeClusterDNSNameResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CheckNodeClusterDNSNameResponse.ProtoReflect.Descriptor instead. func (*CheckNodeClusterDNSNameResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{28} } func (x *CheckNodeClusterDNSNameResponse) GetIsUsed() bool { if x != nil { return x.IsUsed } return false } // 修改集群的域名设置 type UpdateNodeClusterDNSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` DnsName string `protobuf:"bytes,2,opt,name=dnsName,proto3" json:"dnsName,omitempty"` DnsDomainId int64 `protobuf:"varint,3,opt,name=dnsDomainId,proto3" json:"dnsDomainId,omitempty"` NodesAutoSync bool `protobuf:"varint,4,opt,name=nodesAutoSync,proto3" json:"nodesAutoSync,omitempty"` ServersAutoSync bool `protobuf:"varint,5,opt,name=serversAutoSync,proto3" json:"serversAutoSync,omitempty"` CnameRecords []string `protobuf:"bytes,6,rep,name=cnameRecords,proto3" json:"cnameRecords,omitempty"` Ttl int32 `protobuf:"varint,7,opt,name=ttl,proto3" json:"ttl,omitempty"` CnameAsDomain bool `protobuf:"varint,8,opt,name=cnameAsDomain,proto3" json:"cnameAsDomain,omitempty"` IncludingLnNodes bool `protobuf:"varint,9,opt,name=includingLnNodes,proto3" json:"includingLnNodes,omitempty"` } func (x *UpdateNodeClusterDNSRequest) Reset() { *x = UpdateNodeClusterDNSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterDNSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterDNSRequest) ProtoMessage() {} func (x *UpdateNodeClusterDNSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeClusterDNSRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterDNSRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{29} } func (x *UpdateNodeClusterDNSRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterDNSRequest) GetDnsName() string { if x != nil { return x.DnsName } return "" } func (x *UpdateNodeClusterDNSRequest) GetDnsDomainId() int64 { if x != nil { return x.DnsDomainId } return 0 } func (x *UpdateNodeClusterDNSRequest) GetNodesAutoSync() bool { if x != nil { return x.NodesAutoSync } return false } func (x *UpdateNodeClusterDNSRequest) GetServersAutoSync() bool { if x != nil { return x.ServersAutoSync } return false } func (x *UpdateNodeClusterDNSRequest) GetCnameRecords() []string { if x != nil { return x.CnameRecords } return nil } func (x *UpdateNodeClusterDNSRequest) GetTtl() int32 { if x != nil { return x.Ttl } return 0 } func (x *UpdateNodeClusterDNSRequest) GetCnameAsDomain() bool { if x != nil { return x.CnameAsDomain } return false } func (x *UpdateNodeClusterDNSRequest) GetIncludingLnNodes() bool { if x != nil { return x.IncludingLnNodes } return false } // 检查集群的DNS是否有变化 type CheckNodeClusterDNSChangesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *CheckNodeClusterDNSChangesRequest) Reset() { *x = CheckNodeClusterDNSChangesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckNodeClusterDNSChangesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckNodeClusterDNSChangesRequest) ProtoMessage() {} func (x *CheckNodeClusterDNSChangesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CheckNodeClusterDNSChangesRequest.ProtoReflect.Descriptor instead. func (*CheckNodeClusterDNSChangesRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{30} } func (x *CheckNodeClusterDNSChangesRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type CheckNodeClusterDNSChangesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsChanged bool `protobuf:"varint,1,opt,name=isChanged,proto3" json:"isChanged,omitempty"` } func (x *CheckNodeClusterDNSChangesResponse) Reset() { *x = CheckNodeClusterDNSChangesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckNodeClusterDNSChangesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckNodeClusterDNSChangesResponse) ProtoMessage() {} func (x *CheckNodeClusterDNSChangesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CheckNodeClusterDNSChangesResponse.ProtoReflect.Descriptor instead. func (*CheckNodeClusterDNSChangesResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{31} } func (x *CheckNodeClusterDNSChangesResponse) GetIsChanged() bool { if x != nil { return x.IsChanged } return false } // 查找集群的TOA配置 type FindEnabledNodeClusterTOARequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterTOARequest) Reset() { *x = FindEnabledNodeClusterTOARequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterTOARequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterTOARequest) ProtoMessage() {} func (x *FindEnabledNodeClusterTOARequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeClusterTOARequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterTOARequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{32} } func (x *FindEnabledNodeClusterTOARequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterTOAResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ToaJSON []byte `protobuf:"bytes,1,opt,name=toaJSON,proto3" json:"toaJSON,omitempty"` } func (x *FindEnabledNodeClusterTOAResponse) Reset() { *x = FindEnabledNodeClusterTOAResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterTOAResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterTOAResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterTOAResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindEnabledNodeClusterTOAResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterTOAResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{33} } func (x *FindEnabledNodeClusterTOAResponse) GetToaJSON() []byte { if x != nil { return x.ToaJSON } return nil } // 修改集群的TOA设置 type UpdateNodeClusterTOARequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` ToaJSON []byte `protobuf:"bytes,2,opt,name=toaJSON,proto3" json:"toaJSON,omitempty"` } func (x *UpdateNodeClusterTOARequest) Reset() { *x = UpdateNodeClusterTOARequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterTOARequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterTOARequest) ProtoMessage() {} func (x *UpdateNodeClusterTOARequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeClusterTOARequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterTOARequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{34} } func (x *UpdateNodeClusterTOARequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterTOARequest) GetToaJSON() []byte { if x != nil { return x.ToaJSON } return nil } // 计算使用某个缓存策略的集群数量 type CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpCachePolicyId int64 `protobuf:"varint,1,opt,name=httpCachePolicyId,proto3" json:"httpCachePolicyId,omitempty"` } func (x *CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) Reset() { *x = CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{35} } func (x *CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) GetHttpCachePolicyId() int64 { if x != nil { return x.HttpCachePolicyId } return 0 } // 查找使用缓存策略的所有集群 type FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpCachePolicyId int64 `protobuf:"varint,1,opt,name=httpCachePolicyId,proto3" json:"httpCachePolicyId,omitempty"` } func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) Reset() { *x = FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{36} } func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) GetHttpCachePolicyId() int64 { if x != nil { return x.HttpCachePolicyId } return 0 } type FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse) Reset() { *x = FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{37} } func (x *FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 计算使用某个WAF策略的集群数量 type CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpFirewallPolicyId int64 `protobuf:"varint,1,opt,name=httpFirewallPolicyId,proto3" json:"httpFirewallPolicyId,omitempty"` } func (x *CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) Reset() { *x = CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) ProtoMessage() {} func (x *CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{38} } func (x *CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) GetHttpFirewallPolicyId() int64 { if x != nil { return x.HttpFirewallPolicyId } return 0 } // 查找使用某个WAF策略的所有集群 type FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpFirewallPolicyId int64 `protobuf:"varint,1,opt,name=httpFirewallPolicyId,proto3" json:"httpFirewallPolicyId,omitempty"` } func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) Reset() { *x = FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{39} } func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) GetHttpFirewallPolicyId() int64 { if x != nil { return x.HttpFirewallPolicyId } return 0 } type FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse) Reset() { *x = FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse) ProtoMessage() {} func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{40} } func (x *FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 修改集群的缓存策略 type UpdateNodeClusterHTTPCachePolicyIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` HttpCachePolicyId int64 `protobuf:"varint,2,opt,name=httpCachePolicyId,proto3" json:"httpCachePolicyId,omitempty"` } func (x *UpdateNodeClusterHTTPCachePolicyIdRequest) Reset() { *x = UpdateNodeClusterHTTPCachePolicyIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterHTTPCachePolicyIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterHTTPCachePolicyIdRequest) ProtoMessage() {} func (x *UpdateNodeClusterHTTPCachePolicyIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeClusterHTTPCachePolicyIdRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterHTTPCachePolicyIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{41} } func (x *UpdateNodeClusterHTTPCachePolicyIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterHTTPCachePolicyIdRequest) GetHttpCachePolicyId() int64 { if x != nil { return x.HttpCachePolicyId } return 0 } // 修改集群的WAF策略 type UpdateNodeClusterHTTPFirewallPolicyIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` HttpFirewallPolicyId int64 `protobuf:"varint,2,opt,name=httpFirewallPolicyId,proto3" json:"httpFirewallPolicyId,omitempty"` } func (x *UpdateNodeClusterHTTPFirewallPolicyIdRequest) Reset() { *x = UpdateNodeClusterHTTPFirewallPolicyIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterHTTPFirewallPolicyIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterHTTPFirewallPolicyIdRequest) ProtoMessage() {} func (x *UpdateNodeClusterHTTPFirewallPolicyIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_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 UpdateNodeClusterHTTPFirewallPolicyIdRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterHTTPFirewallPolicyIdRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{42} } func (x *UpdateNodeClusterHTTPFirewallPolicyIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterHTTPFirewallPolicyIdRequest) GetHttpFirewallPolicyId() int64 { if x != nil { return x.HttpFirewallPolicyId } return 0 } // 修改集群的系统服务设置 type UpdateNodeClusterSystemServiceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` ParamsJSON []byte `protobuf:"bytes,3,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` } func (x *UpdateNodeClusterSystemServiceRequest) Reset() { *x = UpdateNodeClusterSystemServiceRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterSystemServiceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterSystemServiceRequest) ProtoMessage() {} func (x *UpdateNodeClusterSystemServiceRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterSystemServiceRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterSystemServiceRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{43} } func (x *UpdateNodeClusterSystemServiceRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterSystemServiceRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *UpdateNodeClusterSystemServiceRequest) GetParamsJSON() []byte { if x != nil { return x.ParamsJSON } return nil } // 查找集群的系统服务设置 type FindNodeClusterSystemServiceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` } func (x *FindNodeClusterSystemServiceRequest) Reset() { *x = FindNodeClusterSystemServiceRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterSystemServiceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterSystemServiceRequest) ProtoMessage() {} func (x *FindNodeClusterSystemServiceRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterSystemServiceRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterSystemServiceRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{44} } func (x *FindNodeClusterSystemServiceRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindNodeClusterSystemServiceRequest) GetType() string { if x != nil { return x.Type } return "" } type FindNodeClusterSystemServiceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ParamsJSON []byte `protobuf:"bytes,1,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` } func (x *FindNodeClusterSystemServiceResponse) Reset() { *x = FindNodeClusterSystemServiceResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterSystemServiceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterSystemServiceResponse) ProtoMessage() {} func (x *FindNodeClusterSystemServiceResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterSystemServiceResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterSystemServiceResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{45} } func (x *FindNodeClusterSystemServiceResponse) GetParamsJSON() []byte { if x != nil { return x.ParamsJSON } return nil } // 获取集群中可以使用的端口 type FindFreePortInNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` ProtocolFamily string `protobuf:"bytes,2,opt,name=protocolFamily,proto3" json:"protocolFamily,omitempty"` } func (x *FindFreePortInNodeClusterRequest) Reset() { *x = FindFreePortInNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindFreePortInNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindFreePortInNodeClusterRequest) ProtoMessage() {} func (x *FindFreePortInNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindFreePortInNodeClusterRequest.ProtoReflect.Descriptor instead. func (*FindFreePortInNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{46} } func (x *FindFreePortInNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindFreePortInNodeClusterRequest) GetProtocolFamily() string { if x != nil { return x.ProtocolFamily } return "" } type FindFreePortInNodeClusterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Port int32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` } func (x *FindFreePortInNodeClusterResponse) Reset() { *x = FindFreePortInNodeClusterResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindFreePortInNodeClusterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindFreePortInNodeClusterResponse) ProtoMessage() {} func (x *FindFreePortInNodeClusterResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindFreePortInNodeClusterResponse.ProtoReflect.Descriptor instead. func (*FindFreePortInNodeClusterResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{47} } func (x *FindFreePortInNodeClusterResponse) GetPort() int32 { if x != nil { return x.Port } return 0 } // 检查端口是否已经被使用 type CheckPortIsUsingInNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Port int32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` NodeClusterId int64 `protobuf:"varint,2,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` ExcludeServerId int64 `protobuf:"varint,3,opt,name=excludeServerId,proto3" json:"excludeServerId,omitempty"` ExcludeProtocol string `protobuf:"bytes,4,opt,name=excludeProtocol,proto3" json:"excludeProtocol,omitempty"` ProtocolFamily string `protobuf:"bytes,5,opt,name=protocolFamily,proto3" json:"protocolFamily,omitempty"` } func (x *CheckPortIsUsingInNodeClusterRequest) Reset() { *x = CheckPortIsUsingInNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckPortIsUsingInNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckPortIsUsingInNodeClusterRequest) ProtoMessage() {} func (x *CheckPortIsUsingInNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckPortIsUsingInNodeClusterRequest.ProtoReflect.Descriptor instead. func (*CheckPortIsUsingInNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{48} } func (x *CheckPortIsUsingInNodeClusterRequest) GetPort() int32 { if x != nil { return x.Port } return 0 } func (x *CheckPortIsUsingInNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CheckPortIsUsingInNodeClusterRequest) GetExcludeServerId() int64 { if x != nil { return x.ExcludeServerId } return 0 } func (x *CheckPortIsUsingInNodeClusterRequest) GetExcludeProtocol() string { if x != nil { return x.ExcludeProtocol } return "" } func (x *CheckPortIsUsingInNodeClusterRequest) GetProtocolFamily() string { if x != nil { return x.ProtocolFamily } return "" } type CheckPortIsUsingInNodeClusterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsUsing bool `protobuf:"varint,1,opt,name=isUsing,proto3" json:"isUsing,omitempty"` } func (x *CheckPortIsUsingInNodeClusterResponse) Reset() { *x = CheckPortIsUsingInNodeClusterResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckPortIsUsingInNodeClusterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckPortIsUsingInNodeClusterResponse) ProtoMessage() {} func (x *CheckPortIsUsingInNodeClusterResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckPortIsUsingInNodeClusterResponse.ProtoReflect.Descriptor instead. func (*CheckPortIsUsingInNodeClusterResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{49} } func (x *CheckPortIsUsingInNodeClusterResponse) GetIsUsing() bool { if x != nil { return x.IsUsing } return false } // 查找最近访问的集群 type FindLatestNodeClustersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Size int64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` } func (x *FindLatestNodeClustersRequest) Reset() { *x = FindLatestNodeClustersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindLatestNodeClustersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindLatestNodeClustersRequest) ProtoMessage() {} func (x *FindLatestNodeClustersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindLatestNodeClustersRequest.ProtoReflect.Descriptor instead. func (*FindLatestNodeClustersRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{50} } func (x *FindLatestNodeClustersRequest) GetSize() int64 { if x != nil { return x.Size } return 0 } type FindLatestNodeClustersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusters []*NodeCluster `protobuf:"bytes,1,rep,name=nodeClusters,proto3" json:"nodeClusters,omitempty"` } func (x *FindLatestNodeClustersResponse) Reset() { *x = FindLatestNodeClustersResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindLatestNodeClustersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindLatestNodeClustersResponse) ProtoMessage() {} func (x *FindLatestNodeClustersResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindLatestNodeClustersResponse.ProtoReflect.Descriptor instead. func (*FindLatestNodeClustersResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{51} } func (x *FindLatestNodeClustersResponse) GetNodeClusters() []*NodeCluster { if x != nil { return x.NodeClusters } return nil } // 取得集群的配置概要信息 type FindEnabledNodeClusterConfigInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterConfigInfoRequest) Reset() { *x = FindEnabledNodeClusterConfigInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterConfigInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterConfigInfoRequest) ProtoMessage() {} func (x *FindEnabledNodeClusterConfigInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterConfigInfoRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterConfigInfoRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{52} } func (x *FindEnabledNodeClusterConfigInfoRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterConfigInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HealthCheckIsOn bool `protobuf:"varint,1,opt,name=healthCheckIsOn,proto3" json:"healthCheckIsOn,omitempty"` // 启用了健康检查 HasFirewallActions bool `protobuf:"varint,2,opt,name=hasFirewallActions,proto3" json:"hasFirewallActions,omitempty"` // 有防火墙动作设置 HasThresholds bool `protobuf:"varint,3,opt,name=hasThresholds,proto3" json:"hasThresholds,omitempty"` // 有节点阈值设置 HasMessageReceivers bool `protobuf:"varint,4,opt,name=hasMessageReceivers,proto3" json:"hasMessageReceivers,omitempty"` // 已设置消息通知接收人 IsTOAEnabled bool `protobuf:"varint,5,opt,name=isTOAEnabled,proto3" json:"isTOAEnabled,omitempty"` // 启用了TOA HasMetricItems bool `protobuf:"varint,6,opt,name=hasMetricItems,proto3" json:"hasMetricItems,omitempty"` // 有指标统计设置 WebPIsOn bool `protobuf:"varint,7,opt,name=webPIsOn,proto3" json:"webPIsOn,omitempty"` // 是否定义了WebP策略 UamIsOn bool `protobuf:"varint,10,opt,name=uamIsOn,proto3" json:"uamIsOn,omitempty"` // 是否定义了UAM策略 HttpCCIsOn bool `protobuf:"varint,12,opt,name=httpCCIsOn,proto3" json:"httpCCIsOn,omitempty"` // 是否定义了CC策略 HasSystemServices bool `protobuf:"varint,8,opt,name=hasSystemServices,proto3" json:"hasSystemServices,omitempty"` // 启用了系统服务 HasDDoSProtection bool `protobuf:"varint,9,opt,name=hasDDoSProtection,proto3" json:"hasDDoSProtection,omitempty"` // 启用了DDoS防护 HasHTTPPagesPolicy bool `protobuf:"varint,11,opt,name=hasHTTPPagesPolicy,proto3" json:"hasHTTPPagesPolicy,omitempty"` // 是否设置了自定义页面策略 Http3IsOn bool `protobuf:"varint,13,opt,name=http3IsOn,proto3" json:"http3IsOn,omitempty"` // 是否启用HTTP3 HasNetworkSecurityPolicy bool `protobuf:"varint,14,opt,name=hasNetworkSecurityPolicy,proto3" json:"hasNetworkSecurityPolicy,omitempty"` // 设置了网络安全策略 } func (x *FindEnabledNodeClusterConfigInfoResponse) Reset() { *x = FindEnabledNodeClusterConfigInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterConfigInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterConfigInfoResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterConfigInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterConfigInfoResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterConfigInfoResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{53} } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHealthCheckIsOn() bool { if x != nil { return x.HealthCheckIsOn } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasFirewallActions() bool { if x != nil { return x.HasFirewallActions } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasThresholds() bool { if x != nil { return x.HasThresholds } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasMessageReceivers() bool { if x != nil { return x.HasMessageReceivers } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetIsTOAEnabled() bool { if x != nil { return x.IsTOAEnabled } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasMetricItems() bool { if x != nil { return x.HasMetricItems } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetWebPIsOn() bool { if x != nil { return x.WebPIsOn } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetUamIsOn() bool { if x != nil { return x.UamIsOn } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHttpCCIsOn() bool { if x != nil { return x.HttpCCIsOn } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasSystemServices() bool { if x != nil { return x.HasSystemServices } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasDDoSProtection() bool { if x != nil { return x.HasDDoSProtection } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasHTTPPagesPolicy() bool { if x != nil { return x.HasHTTPPagesPolicy } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHttp3IsOn() bool { if x != nil { return x.Http3IsOn } return false } func (x *FindEnabledNodeClusterConfigInfoResponse) GetHasNetworkSecurityPolicy() bool { if x != nil { return x.HasNetworkSecurityPolicy } return false } // 设置集群是否置顶 type UpdateNodeClusterPinnedRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` IsPinned bool `protobuf:"varint,2,opt,name=isPinned,proto3" json:"isPinned,omitempty"` } func (x *UpdateNodeClusterPinnedRequest) Reset() { *x = UpdateNodeClusterPinnedRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterPinnedRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterPinnedRequest) ProtoMessage() {} func (x *UpdateNodeClusterPinnedRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterPinnedRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterPinnedRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{54} } func (x *UpdateNodeClusterPinnedRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterPinnedRequest) GetIsPinned() bool { if x != nil { return x.IsPinned } return false } // 读取集群WebP策略 type FindEnabledNodeClusterWebPPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterWebPPolicyRequest) Reset() { *x = FindEnabledNodeClusterWebPPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterWebPPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterWebPPolicyRequest) ProtoMessage() {} func (x *FindEnabledNodeClusterWebPPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterWebPPolicyRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterWebPPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{55} } func (x *FindEnabledNodeClusterWebPPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterWebPPolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WebpPolicyJSON []byte `protobuf:"bytes,1,opt,name=webpPolicyJSON,proto3" json:"webpPolicyJSON,omitempty"` } func (x *FindEnabledNodeClusterWebPPolicyResponse) Reset() { *x = FindEnabledNodeClusterWebPPolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterWebPPolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterWebPPolicyResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterWebPPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterWebPPolicyResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterWebPPolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{56} } func (x *FindEnabledNodeClusterWebPPolicyResponse) GetWebpPolicyJSON() []byte { if x != nil { return x.WebpPolicyJSON } return nil } // 设置集群WebP策略 type UpdateNodeClusterWebPPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` WebPPolicyJSON []byte `protobuf:"bytes,2,opt,name=webPPolicyJSON,proto3" json:"webPPolicyJSON,omitempty"` } func (x *UpdateNodeClusterWebPPolicyRequest) Reset() { *x = UpdateNodeClusterWebPPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterWebPPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterWebPPolicyRequest) ProtoMessage() {} func (x *UpdateNodeClusterWebPPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterWebPPolicyRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterWebPPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{57} } func (x *UpdateNodeClusterWebPPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterWebPPolicyRequest) GetWebPPolicyJSON() []byte { if x != nil { return x.WebPPolicyJSON } return nil } // 读取集群的UAM策略 type FindEnabledNodeClusterUAMPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterUAMPolicyRequest) Reset() { *x = FindEnabledNodeClusterUAMPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterUAMPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterUAMPolicyRequest) ProtoMessage() {} func (x *FindEnabledNodeClusterUAMPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterUAMPolicyRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterUAMPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{58} } func (x *FindEnabledNodeClusterUAMPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterUAMPolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UamPolicyJSON []byte `protobuf:"bytes,1,opt,name=uamPolicyJSON,proto3" json:"uamPolicyJSON,omitempty"` } func (x *FindEnabledNodeClusterUAMPolicyResponse) Reset() { *x = FindEnabledNodeClusterUAMPolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterUAMPolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterUAMPolicyResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterUAMPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterUAMPolicyResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterUAMPolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{59} } func (x *FindEnabledNodeClusterUAMPolicyResponse) GetUamPolicyJSON() []byte { if x != nil { return x.UamPolicyJSON } return nil } // 设置集群的UAM策略 type UpdateNodeClusterUAMPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` UamPolicyJSON []byte `protobuf:"bytes,2,opt,name=uamPolicyJSON,proto3" json:"uamPolicyJSON,omitempty"` } func (x *UpdateNodeClusterUAMPolicyRequest) Reset() { *x = UpdateNodeClusterUAMPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterUAMPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterUAMPolicyRequest) ProtoMessage() {} func (x *UpdateNodeClusterUAMPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterUAMPolicyRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterUAMPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{60} } func (x *UpdateNodeClusterUAMPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterUAMPolicyRequest) GetUamPolicyJSON() []byte { if x != nil { return x.UamPolicyJSON } return nil } // 读取集群的HTTP CC策略 type FindEnabledNodeClusterHTTPCCPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindEnabledNodeClusterHTTPCCPolicyRequest) Reset() { *x = FindEnabledNodeClusterHTTPCCPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterHTTPCCPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterHTTPCCPolicyRequest) ProtoMessage() {} func (x *FindEnabledNodeClusterHTTPCCPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterHTTPCCPolicyRequest.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterHTTPCCPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{61} } func (x *FindEnabledNodeClusterHTTPCCPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindEnabledNodeClusterHTTPCCPolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpCCPolicyJSON []byte `protobuf:"bytes,1,opt,name=httpCCPolicyJSON,proto3" json:"httpCCPolicyJSON,omitempty"` } func (x *FindEnabledNodeClusterHTTPCCPolicyResponse) Reset() { *x = FindEnabledNodeClusterHTTPCCPolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledNodeClusterHTTPCCPolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledNodeClusterHTTPCCPolicyResponse) ProtoMessage() {} func (x *FindEnabledNodeClusterHTTPCCPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindEnabledNodeClusterHTTPCCPolicyResponse.ProtoReflect.Descriptor instead. func (*FindEnabledNodeClusterHTTPCCPolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{62} } func (x *FindEnabledNodeClusterHTTPCCPolicyResponse) GetHttpCCPolicyJSON() []byte { if x != nil { return x.HttpCCPolicyJSON } return nil } // 设置集群的HTTP CC策略 type UpdateNodeClusterHTTPCCPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` HttpCCPolicyJSON []byte `protobuf:"bytes,2,opt,name=httpCCPolicyJSON,proto3" json:"httpCCPolicyJSON,omitempty"` } func (x *UpdateNodeClusterHTTPCCPolicyRequest) Reset() { *x = UpdateNodeClusterHTTPCCPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterHTTPCCPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterHTTPCCPolicyRequest) ProtoMessage() {} func (x *UpdateNodeClusterHTTPCCPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterHTTPCCPolicyRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterHTTPCCPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{63} } func (x *UpdateNodeClusterHTTPCCPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterHTTPCCPolicyRequest) GetHttpCCPolicyJSON() []byte { if x != nil { return x.HttpCCPolicyJSON } return nil } // 获取集群的DDoS设置 type FindNodeClusterDDoSProtectionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindNodeClusterDDoSProtectionRequest) Reset() { *x = FindNodeClusterDDoSProtectionRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterDDoSProtectionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterDDoSProtectionRequest) ProtoMessage() {} func (x *FindNodeClusterDDoSProtectionRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterDDoSProtectionRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterDDoSProtectionRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{64} } func (x *FindNodeClusterDDoSProtectionRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindNodeClusterDDoSProtectionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DdosProtectionJSON []byte `protobuf:"bytes,1,opt,name=ddosProtectionJSON,proto3" json:"ddosProtectionJSON,omitempty"` } func (x *FindNodeClusterDDoSProtectionResponse) Reset() { *x = FindNodeClusterDDoSProtectionResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterDDoSProtectionResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterDDoSProtectionResponse) ProtoMessage() {} func (x *FindNodeClusterDDoSProtectionResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterDDoSProtectionResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterDDoSProtectionResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{65} } func (x *FindNodeClusterDDoSProtectionResponse) GetDdosProtectionJSON() []byte { if x != nil { return x.DdosProtectionJSON } return nil } // 修改集群的DDoS设置 type UpdateNodeClusterDDoSProtectionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` DdosProtectionJSON []byte `protobuf:"bytes,2,opt,name=ddosProtectionJSON,proto3" json:"ddosProtectionJSON,omitempty"` } func (x *UpdateNodeClusterDDoSProtectionRequest) Reset() { *x = UpdateNodeClusterDDoSProtectionRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterDDoSProtectionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterDDoSProtectionRequest) ProtoMessage() {} func (x *UpdateNodeClusterDDoSProtectionRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterDDoSProtectionRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterDDoSProtectionRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{66} } func (x *UpdateNodeClusterDDoSProtectionRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterDDoSProtectionRequest) GetDdosProtectionJSON() []byte { if x != nil { return x.DdosProtectionJSON } return nil } // 获取集群的全局服务设置 type FindNodeClusterGlobalServerConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindNodeClusterGlobalServerConfigRequest) Reset() { *x = FindNodeClusterGlobalServerConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterGlobalServerConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterGlobalServerConfigRequest) ProtoMessage() {} func (x *FindNodeClusterGlobalServerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterGlobalServerConfigRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterGlobalServerConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{67} } func (x *FindNodeClusterGlobalServerConfigRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindNodeClusterGlobalServerConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GlobalServerConfigJSON []byte `protobuf:"bytes,1,opt,name=globalServerConfigJSON,proto3" json:"globalServerConfigJSON,omitempty"` } func (x *FindNodeClusterGlobalServerConfigResponse) Reset() { *x = FindNodeClusterGlobalServerConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterGlobalServerConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterGlobalServerConfigResponse) ProtoMessage() {} func (x *FindNodeClusterGlobalServerConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterGlobalServerConfigResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterGlobalServerConfigResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{68} } func (x *FindNodeClusterGlobalServerConfigResponse) GetGlobalServerConfigJSON() []byte { if x != nil { return x.GlobalServerConfigJSON } return nil } // 修改集群的全局服务设置 type UpdateNodeClusterGlobalServerConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID GlobalServerConfigJSON []byte `protobuf:"bytes,2,opt,name=globalServerConfigJSON,proto3" json:"globalServerConfigJSON,omitempty"` // 网站全局配置 } func (x *UpdateNodeClusterGlobalServerConfigRequest) Reset() { *x = UpdateNodeClusterGlobalServerConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterGlobalServerConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterGlobalServerConfigRequest) ProtoMessage() {} func (x *UpdateNodeClusterGlobalServerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterGlobalServerConfigRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterGlobalServerConfigRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{69} } func (x *UpdateNodeClusterGlobalServerConfigRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterGlobalServerConfigRequest) GetGlobalServerConfigJSON() []byte { if x != nil { return x.GlobalServerConfigJSON } return nil } // 获取集群的自定义页面设置 type FindNodeClusterHTTPPagesPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID } func (x *FindNodeClusterHTTPPagesPolicyRequest) Reset() { *x = FindNodeClusterHTTPPagesPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterHTTPPagesPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterHTTPPagesPolicyRequest) ProtoMessage() {} func (x *FindNodeClusterHTTPPagesPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterHTTPPagesPolicyRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterHTTPPagesPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{70} } func (x *FindNodeClusterHTTPPagesPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindNodeClusterHTTPPagesPolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HttpPagesPolicyJSON []byte `protobuf:"bytes,1,opt,name=httpPagesPolicyJSON,proto3" json:"httpPagesPolicyJSON,omitempty"` // HTTP自定义页面策略配置 } func (x *FindNodeClusterHTTPPagesPolicyResponse) Reset() { *x = FindNodeClusterHTTPPagesPolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterHTTPPagesPolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterHTTPPagesPolicyResponse) ProtoMessage() {} func (x *FindNodeClusterHTTPPagesPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterHTTPPagesPolicyResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterHTTPPagesPolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{71} } func (x *FindNodeClusterHTTPPagesPolicyResponse) GetHttpPagesPolicyJSON() []byte { if x != nil { return x.HttpPagesPolicyJSON } return nil } // 修改集群的自定义页面设置 type UpdateNodeClusterHTTPPagesPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID HttpPagesPolicyJSON []byte `protobuf:"bytes,2,opt,name=httpPagesPolicyJSON,proto3" json:"httpPagesPolicyJSON,omitempty"` // HTTP自定义页面策略配置 } func (x *UpdateNodeClusterHTTPPagesPolicyRequest) Reset() { *x = UpdateNodeClusterHTTPPagesPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterHTTPPagesPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterHTTPPagesPolicyRequest) ProtoMessage() {} func (x *UpdateNodeClusterHTTPPagesPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterHTTPPagesPolicyRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterHTTPPagesPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{72} } func (x *UpdateNodeClusterHTTPPagesPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterHTTPPagesPolicyRequest) GetHttpPagesPolicyJSON() []byte { if x != nil { return x.HttpPagesPolicyJSON } return nil } // 获取集群的HTTP3设置 type FindNodeClusterHTTP3PolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID } func (x *FindNodeClusterHTTP3PolicyRequest) Reset() { *x = FindNodeClusterHTTP3PolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterHTTP3PolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterHTTP3PolicyRequest) ProtoMessage() {} func (x *FindNodeClusterHTTP3PolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterHTTP3PolicyRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterHTTP3PolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{73} } func (x *FindNodeClusterHTTP3PolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindNodeClusterHTTP3PolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Http3PolicyJSON []byte `protobuf:"bytes,1,opt,name=http3PolicyJSON,proto3" json:"http3PolicyJSON,omitempty"` // HTTP3策略配置 } func (x *FindNodeClusterHTTP3PolicyResponse) Reset() { *x = FindNodeClusterHTTP3PolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterHTTP3PolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterHTTP3PolicyResponse) ProtoMessage() {} func (x *FindNodeClusterHTTP3PolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterHTTP3PolicyResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterHTTP3PolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{74} } func (x *FindNodeClusterHTTP3PolicyResponse) GetHttp3PolicyJSON() []byte { if x != nil { return x.Http3PolicyJSON } return nil } // 修改集群的HTTP3设置 type UpdateNodeClusterHTTP3PolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID Http3PolicyJSON []byte `protobuf:"bytes,2,opt,name=http3PolicyJSON,proto3" json:"http3PolicyJSON,omitempty"` // HTTP3策略配置 } func (x *UpdateNodeClusterHTTP3PolicyRequest) Reset() { *x = UpdateNodeClusterHTTP3PolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterHTTP3PolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterHTTP3PolicyRequest) ProtoMessage() {} func (x *UpdateNodeClusterHTTP3PolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterHTTP3PolicyRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterHTTP3PolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{75} } func (x *UpdateNodeClusterHTTP3PolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterHTTP3PolicyRequest) GetHttp3PolicyJSON() []byte { if x != nil { return x.Http3PolicyJSON } return nil } // 获取集群的网络安全策略 type FindNodeClusterNetworkSecurityPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID } func (x *FindNodeClusterNetworkSecurityPolicyRequest) Reset() { *x = FindNodeClusterNetworkSecurityPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterNetworkSecurityPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterNetworkSecurityPolicyRequest) ProtoMessage() {} func (x *FindNodeClusterNetworkSecurityPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterNetworkSecurityPolicyRequest.ProtoReflect.Descriptor instead. func (*FindNodeClusterNetworkSecurityPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{76} } func (x *FindNodeClusterNetworkSecurityPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindNodeClusterNetworkSecurityPolicyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NetworkSecurityPolicyJSON []byte `protobuf:"bytes,1,opt,name=networkSecurityPolicyJSON,proto3" json:"networkSecurityPolicyJSON,omitempty"` // 网络安全策略配置 } func (x *FindNodeClusterNetworkSecurityPolicyResponse) Reset() { *x = FindNodeClusterNetworkSecurityPolicyResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNodeClusterNetworkSecurityPolicyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNodeClusterNetworkSecurityPolicyResponse) ProtoMessage() {} func (x *FindNodeClusterNetworkSecurityPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindNodeClusterNetworkSecurityPolicyResponse.ProtoReflect.Descriptor instead. func (*FindNodeClusterNetworkSecurityPolicyResponse) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{77} } func (x *FindNodeClusterNetworkSecurityPolicyResponse) GetNetworkSecurityPolicyJSON() []byte { if x != nil { return x.NetworkSecurityPolicyJSON } return nil } // 修改集群的网络安全策略 type UpdateNodeClusterNetworkSecurityPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID NetworkSecurityPolicyJSON []byte `protobuf:"bytes,2,opt,name=networkSecurityPolicyJSON,proto3" json:"networkSecurityPolicyJSON,omitempty"` // 网络安全策略配置 } func (x *UpdateNodeClusterNetworkSecurityPolicyRequest) Reset() { *x = UpdateNodeClusterNetworkSecurityPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeClusterNetworkSecurityPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeClusterNetworkSecurityPolicyRequest) ProtoMessage() {} func (x *UpdateNodeClusterNetworkSecurityPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateNodeClusterNetworkSecurityPolicyRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeClusterNetworkSecurityPolicyRequest) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{78} } func (x *UpdateNodeClusterNetworkSecurityPolicyRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateNodeClusterNetworkSecurityPolicyRequest) GetNetworkSecurityPolicyJSON() []byte { if x != nil { return x.NetworkSecurityPolicyJSON } return nil } type ExecuteNodeClusterHealthCheckResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` NodeAddr string `protobuf:"bytes,2,opt,name=nodeAddr,proto3" json:"nodeAddr,omitempty"` IsOk bool `protobuf:"varint,3,opt,name=isOk,proto3" json:"isOk,omitempty"` Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` CostMs float32 `protobuf:"fixed32,5,opt,name=costMs,proto3" json:"costMs,omitempty"` } func (x *ExecuteNodeClusterHealthCheckResponse_Result) Reset() { *x = ExecuteNodeClusterHealthCheckResponse_Result{} if protoimpl.UnsafeEnabled { mi := &file_service_node_cluster_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteNodeClusterHealthCheckResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteNodeClusterHealthCheckResponse_Result) ProtoMessage() {} func (x *ExecuteNodeClusterHealthCheckResponse_Result) ProtoReflect() protoreflect.Message { mi := &file_service_node_cluster_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExecuteNodeClusterHealthCheckResponse_Result.ProtoReflect.Descriptor instead. func (*ExecuteNodeClusterHealthCheckResponse_Result) Descriptor() ([]byte, []int) { return file_service_node_cluster_proto_rawDescGZIP(), []int{17, 0} } func (x *ExecuteNodeClusterHealthCheckResponse_Result) GetNode() *Node { if x != nil { return x.Node } return nil } func (x *ExecuteNodeClusterHealthCheckResponse_Result) GetNodeAddr() string { if x != nil { return x.NodeAddr } return "" } func (x *ExecuteNodeClusterHealthCheckResponse_Result) GetIsOk() bool { if x != nil { return x.IsOk } return false } func (x *ExecuteNodeClusterHealthCheckResponse_Result) GetError() string { if x != nil { return x.Error } return "" } func (x *ExecuteNodeClusterHealthCheckResponse_Result) GetCostMs() float32 { if x != nil { return x.CostMs } return 0 } var File_service_node_cluster_proto protoreflect.FileDescriptor var file_service_node_cluster_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x59, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x04, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 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, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6e, 0x73, 0x54, 0x54, 0x4c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x6e, 0x73, 0x54, 0x54, 0x4c, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x36, 0x0a, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x66, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x66, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xd4, 0x04, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x66, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4e, 0x66, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x73, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x73, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x22, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x44, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x64, 0x44, 0x65, 0x73, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, 0x41, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x64, 0x41, 0x73, 0x63, 0x22, 0x56, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x4f, 0x0a, 0x27, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x28, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x75, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4c, 0x0a, 0x24, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xfa, 0x01, 0x0a, 0x25, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x73, 0x74, 0x4d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x73, 0x74, 0x4d, 0x73, 0x22, 0x55, 0x0a, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x30, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x87, 0x03, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x5b, 0x0a, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x30, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x60, 0x0a, 0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x1f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x55, 0x73, 0x65, 0x64, 0x22, 0xd7, 0x02, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x49, 0x0a, 0x21, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x22, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6f, 0x61, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x67, 0x0a, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x36, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x37, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x70, 0x0a, 0x3a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x39, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x3a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x7f, 0x0a, 0x29, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x68, 0x74, 0x74, 0x70, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x2c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x5f, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x70, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x46, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x37, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x46, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x24, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x41, 0x0a, 0x25, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x33, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x55, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x4f, 0x0a, 0x27, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xe4, 0x04, 0x0a, 0x28, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x4f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x68, 0x61, 0x73, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x54, 0x4f, 0x41, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x4f, 0x41, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x50, 0x49, 0x73, 0x4f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x65, 0x62, 0x50, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x61, 0x6d, 0x49, 0x73, 0x4f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x61, 0x6d, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x49, 0x73, 0x4f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x68, 0x61, 0x73, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x33, 0x49, 0x73, 0x4f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70, 0x33, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x3a, 0x0a, 0x18, 0x68, 0x61, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x68, 0x61, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x62, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x22, 0x4f, 0x0a, 0x27, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x28, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x65, 0x62, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x72, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4e, 0x0a, 0x26, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x27, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x6f, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x51, 0x0a, 0x29, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x78, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4c, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x7e, 0x0a, 0x26, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 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, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 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, 0x50, 0x0a, 0x28, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x29, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x8a, 0x01, 0x0a, 0x2a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4d, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x26, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x81, 0x01, 0x0a, 0x27, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x49, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x75, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x53, 0x0a, 0x2b, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x2c, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x19, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x19, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x19, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x32, 0xa3, 0x2c, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x1b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x62, 0x0a, 0x17, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x74, 0x0a, 0x1d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x2a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x29, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x2c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x2a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x29, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6b, 0x0a, 0x1a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x4f, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x30, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x3b, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0xaa, 0x01, 0x0a, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x3a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x33, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x3e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0xb3, 0x01, 0x0a, 0x32, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x3d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x22, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x69, 0x0a, 0x25, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x1e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x71, 0x0a, 0x1c, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x46, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x46, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x46, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x7d, 0x0a, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x62, 0x50, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x7a, 0x0a, 0x1f, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x83, 0x01, 0x0a, 0x22, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x1d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x43, 0x43, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 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, 0x5d, 0x0a, 0x1f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x44, 0x6f, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 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, 0x80, 0x01, 0x0a, 0x21, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x23, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x77, 0x0a, 0x1e, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x50, 0x61, 0x67, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x33, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x24, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x26, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x31, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_service_node_cluster_proto_rawDescOnce sync.Once file_service_node_cluster_proto_rawDescData = file_service_node_cluster_proto_rawDesc ) func file_service_node_cluster_proto_rawDescGZIP() []byte { file_service_node_cluster_proto_rawDescOnce.Do(func() { file_service_node_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_cluster_proto_rawDescData) }) return file_service_node_cluster_proto_rawDescData } var file_service_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 80) var file_service_node_cluster_proto_goTypes = []interface{}{ (*FindAllEnabledNodeClustersRequest)(nil), // 0: pb.FindAllEnabledNodeClustersRequest (*FindAllEnabledNodeClustersResponse)(nil), // 1: pb.FindAllEnabledNodeClustersResponse (*CreateNodeClusterRequest)(nil), // 2: pb.CreateNodeClusterRequest (*CreateNodeClusterResponse)(nil), // 3: pb.CreateNodeClusterResponse (*UpdateNodeClusterRequest)(nil), // 4: pb.UpdateNodeClusterRequest (*DeleteNodeClusterRequest)(nil), // 5: pb.DeleteNodeClusterRequest (*FindEnabledNodeClusterRequest)(nil), // 6: pb.FindEnabledNodeClusterRequest (*FindEnabledNodeClusterResponse)(nil), // 7: pb.FindEnabledNodeClusterResponse (*FindAPINodesWithNodeClusterRequest)(nil), // 8: pb.FindAPINodesWithNodeClusterRequest (*FindAPINodesWithNodeClusterResponse)(nil), // 9: pb.FindAPINodesWithNodeClusterResponse (*CountAllEnabledNodeClustersRequest)(nil), // 10: pb.CountAllEnabledNodeClustersRequest (*ListEnabledNodeClustersRequest)(nil), // 11: pb.ListEnabledNodeClustersRequest (*ListEnabledNodeClustersResponse)(nil), // 12: pb.ListEnabledNodeClustersResponse (*FindNodeClusterHealthCheckConfigRequest)(nil), // 13: pb.FindNodeClusterHealthCheckConfigRequest (*FindNodeClusterHealthCheckConfigResponse)(nil), // 14: pb.FindNodeClusterHealthCheckConfigResponse (*UpdateNodeClusterHealthCheckRequest)(nil), // 15: pb.UpdateNodeClusterHealthCheckRequest (*ExecuteNodeClusterHealthCheckRequest)(nil), // 16: pb.ExecuteNodeClusterHealthCheckRequest (*ExecuteNodeClusterHealthCheckResponse)(nil), // 17: pb.ExecuteNodeClusterHealthCheckResponse (*CountAllEnabledNodeClustersWithNodeGrantIdRequest)(nil), // 18: pb.CountAllEnabledNodeClustersWithNodeGrantIdRequest (*FindAllEnabledNodeClustersWithNodeGrantIdRequest)(nil), // 19: pb.FindAllEnabledNodeClustersWithNodeGrantIdRequest (*FindAllEnabledNodeClustersWithNodeGrantIdResponse)(nil), // 20: pb.FindAllEnabledNodeClustersWithNodeGrantIdResponse (*FindEnabledNodeClusterDNSRequest)(nil), // 21: pb.FindEnabledNodeClusterDNSRequest (*FindEnabledNodeClusterDNSResponse)(nil), // 22: pb.FindEnabledNodeClusterDNSResponse (*CountAllEnabledNodeClustersWithDNSProviderIdRequest)(nil), // 23: pb.CountAllEnabledNodeClustersWithDNSProviderIdRequest (*CountAllEnabledNodeClustersWithDNSDomainIdRequest)(nil), // 24: pb.CountAllEnabledNodeClustersWithDNSDomainIdRequest (*FindAllEnabledNodeClustersWithDNSDomainIdRequest)(nil), // 25: pb.FindAllEnabledNodeClustersWithDNSDomainIdRequest (*FindAllEnabledNodeClustersWithDNSDomainIdResponse)(nil), // 26: pb.FindAllEnabledNodeClustersWithDNSDomainIdResponse (*CheckNodeClusterDNSNameRequest)(nil), // 27: pb.CheckNodeClusterDNSNameRequest (*CheckNodeClusterDNSNameResponse)(nil), // 28: pb.CheckNodeClusterDNSNameResponse (*UpdateNodeClusterDNSRequest)(nil), // 29: pb.UpdateNodeClusterDNSRequest (*CheckNodeClusterDNSChangesRequest)(nil), // 30: pb.CheckNodeClusterDNSChangesRequest (*CheckNodeClusterDNSChangesResponse)(nil), // 31: pb.CheckNodeClusterDNSChangesResponse (*FindEnabledNodeClusterTOARequest)(nil), // 32: pb.FindEnabledNodeClusterTOARequest (*FindEnabledNodeClusterTOAResponse)(nil), // 33: pb.FindEnabledNodeClusterTOAResponse (*UpdateNodeClusterTOARequest)(nil), // 34: pb.UpdateNodeClusterTOARequest (*CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest)(nil), // 35: pb.CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest (*FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest)(nil), // 36: pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest (*FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse)(nil), // 37: pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse (*CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest)(nil), // 38: pb.CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest (*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest)(nil), // 39: pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest (*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse)(nil), // 40: pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse (*UpdateNodeClusterHTTPCachePolicyIdRequest)(nil), // 41: pb.UpdateNodeClusterHTTPCachePolicyIdRequest (*UpdateNodeClusterHTTPFirewallPolicyIdRequest)(nil), // 42: pb.UpdateNodeClusterHTTPFirewallPolicyIdRequest (*UpdateNodeClusterSystemServiceRequest)(nil), // 43: pb.UpdateNodeClusterSystemServiceRequest (*FindNodeClusterSystemServiceRequest)(nil), // 44: pb.FindNodeClusterSystemServiceRequest (*FindNodeClusterSystemServiceResponse)(nil), // 45: pb.FindNodeClusterSystemServiceResponse (*FindFreePortInNodeClusterRequest)(nil), // 46: pb.FindFreePortInNodeClusterRequest (*FindFreePortInNodeClusterResponse)(nil), // 47: pb.FindFreePortInNodeClusterResponse (*CheckPortIsUsingInNodeClusterRequest)(nil), // 48: pb.CheckPortIsUsingInNodeClusterRequest (*CheckPortIsUsingInNodeClusterResponse)(nil), // 49: pb.CheckPortIsUsingInNodeClusterResponse (*FindLatestNodeClustersRequest)(nil), // 50: pb.FindLatestNodeClustersRequest (*FindLatestNodeClustersResponse)(nil), // 51: pb.FindLatestNodeClustersResponse (*FindEnabledNodeClusterConfigInfoRequest)(nil), // 52: pb.FindEnabledNodeClusterConfigInfoRequest (*FindEnabledNodeClusterConfigInfoResponse)(nil), // 53: pb.FindEnabledNodeClusterConfigInfoResponse (*UpdateNodeClusterPinnedRequest)(nil), // 54: pb.UpdateNodeClusterPinnedRequest (*FindEnabledNodeClusterWebPPolicyRequest)(nil), // 55: pb.FindEnabledNodeClusterWebPPolicyRequest (*FindEnabledNodeClusterWebPPolicyResponse)(nil), // 56: pb.FindEnabledNodeClusterWebPPolicyResponse (*UpdateNodeClusterWebPPolicyRequest)(nil), // 57: pb.UpdateNodeClusterWebPPolicyRequest (*FindEnabledNodeClusterUAMPolicyRequest)(nil), // 58: pb.FindEnabledNodeClusterUAMPolicyRequest (*FindEnabledNodeClusterUAMPolicyResponse)(nil), // 59: pb.FindEnabledNodeClusterUAMPolicyResponse (*UpdateNodeClusterUAMPolicyRequest)(nil), // 60: pb.UpdateNodeClusterUAMPolicyRequest (*FindEnabledNodeClusterHTTPCCPolicyRequest)(nil), // 61: pb.FindEnabledNodeClusterHTTPCCPolicyRequest (*FindEnabledNodeClusterHTTPCCPolicyResponse)(nil), // 62: pb.FindEnabledNodeClusterHTTPCCPolicyResponse (*UpdateNodeClusterHTTPCCPolicyRequest)(nil), // 63: pb.UpdateNodeClusterHTTPCCPolicyRequest (*FindNodeClusterDDoSProtectionRequest)(nil), // 64: pb.FindNodeClusterDDoSProtectionRequest (*FindNodeClusterDDoSProtectionResponse)(nil), // 65: pb.FindNodeClusterDDoSProtectionResponse (*UpdateNodeClusterDDoSProtectionRequest)(nil), // 66: pb.UpdateNodeClusterDDoSProtectionRequest (*FindNodeClusterGlobalServerConfigRequest)(nil), // 67: pb.FindNodeClusterGlobalServerConfigRequest (*FindNodeClusterGlobalServerConfigResponse)(nil), // 68: pb.FindNodeClusterGlobalServerConfigResponse (*UpdateNodeClusterGlobalServerConfigRequest)(nil), // 69: pb.UpdateNodeClusterGlobalServerConfigRequest (*FindNodeClusterHTTPPagesPolicyRequest)(nil), // 70: pb.FindNodeClusterHTTPPagesPolicyRequest (*FindNodeClusterHTTPPagesPolicyResponse)(nil), // 71: pb.FindNodeClusterHTTPPagesPolicyResponse (*UpdateNodeClusterHTTPPagesPolicyRequest)(nil), // 72: pb.UpdateNodeClusterHTTPPagesPolicyRequest (*FindNodeClusterHTTP3PolicyRequest)(nil), // 73: pb.FindNodeClusterHTTP3PolicyRequest (*FindNodeClusterHTTP3PolicyResponse)(nil), // 74: pb.FindNodeClusterHTTP3PolicyResponse (*UpdateNodeClusterHTTP3PolicyRequest)(nil), // 75: pb.UpdateNodeClusterHTTP3PolicyRequest (*FindNodeClusterNetworkSecurityPolicyRequest)(nil), // 76: pb.FindNodeClusterNetworkSecurityPolicyRequest (*FindNodeClusterNetworkSecurityPolicyResponse)(nil), // 77: pb.FindNodeClusterNetworkSecurityPolicyResponse (*UpdateNodeClusterNetworkSecurityPolicyRequest)(nil), // 78: pb.UpdateNodeClusterNetworkSecurityPolicyRequest (*ExecuteNodeClusterHealthCheckResponse_Result)(nil), // 79: pb.ExecuteNodeClusterHealthCheckResponse.Result (*NodeCluster)(nil), // 80: pb.NodeCluster (*APINode)(nil), // 81: pb.APINode (*DNSDomain)(nil), // 82: pb.DNSDomain (*DNSProvider)(nil), // 83: pb.DNSProvider (*Node)(nil), // 84: pb.Node (*RPCSuccess)(nil), // 85: pb.RPCSuccess (*RPCCountResponse)(nil), // 86: pb.RPCCountResponse } var file_service_node_cluster_proto_depIdxs = []int32{ 80, // 0: pb.FindAllEnabledNodeClustersResponse.nodeClusters:type_name -> pb.NodeCluster 80, // 1: pb.FindEnabledNodeClusterResponse.nodeCluster:type_name -> pb.NodeCluster 81, // 2: pb.FindAPINodesWithNodeClusterResponse.apiNodes:type_name -> pb.APINode 80, // 3: pb.ListEnabledNodeClustersResponse.nodeClusters:type_name -> pb.NodeCluster 79, // 4: pb.ExecuteNodeClusterHealthCheckResponse.results:type_name -> pb.ExecuteNodeClusterHealthCheckResponse.Result 80, // 5: pb.FindAllEnabledNodeClustersWithNodeGrantIdResponse.nodeClusters:type_name -> pb.NodeCluster 82, // 6: pb.FindEnabledNodeClusterDNSResponse.domain:type_name -> pb.DNSDomain 83, // 7: pb.FindEnabledNodeClusterDNSResponse.provider:type_name -> pb.DNSProvider 80, // 8: pb.FindAllEnabledNodeClustersWithDNSDomainIdResponse.nodeClusters:type_name -> pb.NodeCluster 80, // 9: pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse.nodeClusters:type_name -> pb.NodeCluster 80, // 10: pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse.nodeClusters:type_name -> pb.NodeCluster 80, // 11: pb.FindLatestNodeClustersResponse.nodeClusters:type_name -> pb.NodeCluster 84, // 12: pb.ExecuteNodeClusterHealthCheckResponse.Result.node:type_name -> pb.Node 2, // 13: pb.NodeClusterService.createNodeCluster:input_type -> pb.CreateNodeClusterRequest 4, // 14: pb.NodeClusterService.updateNodeCluster:input_type -> pb.UpdateNodeClusterRequest 5, // 15: pb.NodeClusterService.deleteNodeCluster:input_type -> pb.DeleteNodeClusterRequest 6, // 16: pb.NodeClusterService.findEnabledNodeCluster:input_type -> pb.FindEnabledNodeClusterRequest 8, // 17: pb.NodeClusterService.findAPINodesWithNodeCluster:input_type -> pb.FindAPINodesWithNodeClusterRequest 0, // 18: pb.NodeClusterService.findAllEnabledNodeClusters:input_type -> pb.FindAllEnabledNodeClustersRequest 10, // 19: pb.NodeClusterService.countAllEnabledNodeClusters:input_type -> pb.CountAllEnabledNodeClustersRequest 11, // 20: pb.NodeClusterService.listEnabledNodeClusters:input_type -> pb.ListEnabledNodeClustersRequest 13, // 21: pb.NodeClusterService.findNodeClusterHealthCheckConfig:input_type -> pb.FindNodeClusterHealthCheckConfigRequest 15, // 22: pb.NodeClusterService.updateNodeClusterHealthCheck:input_type -> pb.UpdateNodeClusterHealthCheckRequest 16, // 23: pb.NodeClusterService.executeNodeClusterHealthCheck:input_type -> pb.ExecuteNodeClusterHealthCheckRequest 18, // 24: pb.NodeClusterService.countAllEnabledNodeClustersWithNodeGrantId:input_type -> pb.CountAllEnabledNodeClustersWithNodeGrantIdRequest 19, // 25: pb.NodeClusterService.findAllEnabledNodeClustersWithNodeGrantId:input_type -> pb.FindAllEnabledNodeClustersWithNodeGrantIdRequest 21, // 26: pb.NodeClusterService.findEnabledNodeClusterDNS:input_type -> pb.FindEnabledNodeClusterDNSRequest 23, // 27: pb.NodeClusterService.countAllEnabledNodeClustersWithDNSProviderId:input_type -> pb.CountAllEnabledNodeClustersWithDNSProviderIdRequest 24, // 28: pb.NodeClusterService.countAllEnabledNodeClustersWithDNSDomainId:input_type -> pb.CountAllEnabledNodeClustersWithDNSDomainIdRequest 25, // 29: pb.NodeClusterService.findAllEnabledNodeClustersWithDNSDomainId:input_type -> pb.FindAllEnabledNodeClustersWithDNSDomainIdRequest 27, // 30: pb.NodeClusterService.checkNodeClusterDNSName:input_type -> pb.CheckNodeClusterDNSNameRequest 29, // 31: pb.NodeClusterService.updateNodeClusterDNS:input_type -> pb.UpdateNodeClusterDNSRequest 30, // 32: pb.NodeClusterService.checkNodeClusterDNSChanges:input_type -> pb.CheckNodeClusterDNSChangesRequest 32, // 33: pb.NodeClusterService.findEnabledNodeClusterTOA:input_type -> pb.FindEnabledNodeClusterTOARequest 34, // 34: pb.NodeClusterService.updateNodeClusterTOA:input_type -> pb.UpdateNodeClusterTOARequest 35, // 35: pb.NodeClusterService.countAllEnabledNodeClustersWithHTTPCachePolicyId:input_type -> pb.CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest 36, // 36: pb.NodeClusterService.findAllEnabledNodeClustersWithHTTPCachePolicyId:input_type -> pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest 38, // 37: pb.NodeClusterService.countAllEnabledNodeClustersWithHTTPFirewallPolicyId:input_type -> pb.CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest 39, // 38: pb.NodeClusterService.findAllEnabledNodeClustersWithHTTPFirewallPolicyId:input_type -> pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest 41, // 39: pb.NodeClusterService.updateNodeClusterHTTPCachePolicyId:input_type -> pb.UpdateNodeClusterHTTPCachePolicyIdRequest 42, // 40: pb.NodeClusterService.updateNodeClusterHTTPFirewallPolicyId:input_type -> pb.UpdateNodeClusterHTTPFirewallPolicyIdRequest 43, // 41: pb.NodeClusterService.updateNodeClusterSystemService:input_type -> pb.UpdateNodeClusterSystemServiceRequest 44, // 42: pb.NodeClusterService.findNodeClusterSystemService:input_type -> pb.FindNodeClusterSystemServiceRequest 46, // 43: pb.NodeClusterService.findFreePortInNodeCluster:input_type -> pb.FindFreePortInNodeClusterRequest 48, // 44: pb.NodeClusterService.checkPortIsUsingInNodeCluster:input_type -> pb.CheckPortIsUsingInNodeClusterRequest 50, // 45: pb.NodeClusterService.findLatestNodeClusters:input_type -> pb.FindLatestNodeClustersRequest 52, // 46: pb.NodeClusterService.findEnabledNodeClusterConfigInfo:input_type -> pb.FindEnabledNodeClusterConfigInfoRequest 54, // 47: pb.NodeClusterService.updateNodeClusterPinned:input_type -> pb.UpdateNodeClusterPinnedRequest 55, // 48: pb.NodeClusterService.findEnabledNodeClusterWebPPolicy:input_type -> pb.FindEnabledNodeClusterWebPPolicyRequest 57, // 49: pb.NodeClusterService.updateNodeClusterWebPPolicy:input_type -> pb.UpdateNodeClusterWebPPolicyRequest 58, // 50: pb.NodeClusterService.findEnabledNodeClusterUAMPolicy:input_type -> pb.FindEnabledNodeClusterUAMPolicyRequest 60, // 51: pb.NodeClusterService.updateNodeClusterUAMPolicy:input_type -> pb.UpdateNodeClusterUAMPolicyRequest 61, // 52: pb.NodeClusterService.findEnabledNodeClusterHTTPCCPolicy:input_type -> pb.FindEnabledNodeClusterHTTPCCPolicyRequest 63, // 53: pb.NodeClusterService.updateNodeClusterHTTPCCPolicy:input_type -> pb.UpdateNodeClusterHTTPCCPolicyRequest 64, // 54: pb.NodeClusterService.findNodeClusterDDoSProtection:input_type -> pb.FindNodeClusterDDoSProtectionRequest 66, // 55: pb.NodeClusterService.updateNodeClusterDDoSProtection:input_type -> pb.UpdateNodeClusterDDoSProtectionRequest 67, // 56: pb.NodeClusterService.findNodeClusterGlobalServerConfig:input_type -> pb.FindNodeClusterGlobalServerConfigRequest 69, // 57: pb.NodeClusterService.updateNodeClusterGlobalServerConfig:input_type -> pb.UpdateNodeClusterGlobalServerConfigRequest 70, // 58: pb.NodeClusterService.findNodeClusterHTTPPagesPolicy:input_type -> pb.FindNodeClusterHTTPPagesPolicyRequest 72, // 59: pb.NodeClusterService.updateNodeClusterHTTPPagesPolicy:input_type -> pb.UpdateNodeClusterHTTPPagesPolicyRequest 73, // 60: pb.NodeClusterService.findNodeClusterHTTP3Policy:input_type -> pb.FindNodeClusterHTTP3PolicyRequest 75, // 61: pb.NodeClusterService.updateNodeClusterHTTP3Policy:input_type -> pb.UpdateNodeClusterHTTP3PolicyRequest 76, // 62: pb.NodeClusterService.findNodeClusterNetworkSecurityPolicy:input_type -> pb.FindNodeClusterNetworkSecurityPolicyRequest 78, // 63: pb.NodeClusterService.updateNodeClusterNetworkSecurityPolicy:input_type -> pb.UpdateNodeClusterNetworkSecurityPolicyRequest 3, // 64: pb.NodeClusterService.createNodeCluster:output_type -> pb.CreateNodeClusterResponse 85, // 65: pb.NodeClusterService.updateNodeCluster:output_type -> pb.RPCSuccess 85, // 66: pb.NodeClusterService.deleteNodeCluster:output_type -> pb.RPCSuccess 7, // 67: pb.NodeClusterService.findEnabledNodeCluster:output_type -> pb.FindEnabledNodeClusterResponse 9, // 68: pb.NodeClusterService.findAPINodesWithNodeCluster:output_type -> pb.FindAPINodesWithNodeClusterResponse 1, // 69: pb.NodeClusterService.findAllEnabledNodeClusters:output_type -> pb.FindAllEnabledNodeClustersResponse 86, // 70: pb.NodeClusterService.countAllEnabledNodeClusters:output_type -> pb.RPCCountResponse 12, // 71: pb.NodeClusterService.listEnabledNodeClusters:output_type -> pb.ListEnabledNodeClustersResponse 14, // 72: pb.NodeClusterService.findNodeClusterHealthCheckConfig:output_type -> pb.FindNodeClusterHealthCheckConfigResponse 85, // 73: pb.NodeClusterService.updateNodeClusterHealthCheck:output_type -> pb.RPCSuccess 17, // 74: pb.NodeClusterService.executeNodeClusterHealthCheck:output_type -> pb.ExecuteNodeClusterHealthCheckResponse 86, // 75: pb.NodeClusterService.countAllEnabledNodeClustersWithNodeGrantId:output_type -> pb.RPCCountResponse 20, // 76: pb.NodeClusterService.findAllEnabledNodeClustersWithNodeGrantId:output_type -> pb.FindAllEnabledNodeClustersWithNodeGrantIdResponse 22, // 77: pb.NodeClusterService.findEnabledNodeClusterDNS:output_type -> pb.FindEnabledNodeClusterDNSResponse 86, // 78: pb.NodeClusterService.countAllEnabledNodeClustersWithDNSProviderId:output_type -> pb.RPCCountResponse 86, // 79: pb.NodeClusterService.countAllEnabledNodeClustersWithDNSDomainId:output_type -> pb.RPCCountResponse 26, // 80: pb.NodeClusterService.findAllEnabledNodeClustersWithDNSDomainId:output_type -> pb.FindAllEnabledNodeClustersWithDNSDomainIdResponse 28, // 81: pb.NodeClusterService.checkNodeClusterDNSName:output_type -> pb.CheckNodeClusterDNSNameResponse 85, // 82: pb.NodeClusterService.updateNodeClusterDNS:output_type -> pb.RPCSuccess 31, // 83: pb.NodeClusterService.checkNodeClusterDNSChanges:output_type -> pb.CheckNodeClusterDNSChangesResponse 33, // 84: pb.NodeClusterService.findEnabledNodeClusterTOA:output_type -> pb.FindEnabledNodeClusterTOAResponse 85, // 85: pb.NodeClusterService.updateNodeClusterTOA:output_type -> pb.RPCSuccess 86, // 86: pb.NodeClusterService.countAllEnabledNodeClustersWithHTTPCachePolicyId:output_type -> pb.RPCCountResponse 37, // 87: pb.NodeClusterService.findAllEnabledNodeClustersWithHTTPCachePolicyId:output_type -> pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse 86, // 88: pb.NodeClusterService.countAllEnabledNodeClustersWithHTTPFirewallPolicyId:output_type -> pb.RPCCountResponse 40, // 89: pb.NodeClusterService.findAllEnabledNodeClustersWithHTTPFirewallPolicyId:output_type -> pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse 85, // 90: pb.NodeClusterService.updateNodeClusterHTTPCachePolicyId:output_type -> pb.RPCSuccess 85, // 91: pb.NodeClusterService.updateNodeClusterHTTPFirewallPolicyId:output_type -> pb.RPCSuccess 85, // 92: pb.NodeClusterService.updateNodeClusterSystemService:output_type -> pb.RPCSuccess 45, // 93: pb.NodeClusterService.findNodeClusterSystemService:output_type -> pb.FindNodeClusterSystemServiceResponse 47, // 94: pb.NodeClusterService.findFreePortInNodeCluster:output_type -> pb.FindFreePortInNodeClusterResponse 49, // 95: pb.NodeClusterService.checkPortIsUsingInNodeCluster:output_type -> pb.CheckPortIsUsingInNodeClusterResponse 51, // 96: pb.NodeClusterService.findLatestNodeClusters:output_type -> pb.FindLatestNodeClustersResponse 53, // 97: pb.NodeClusterService.findEnabledNodeClusterConfigInfo:output_type -> pb.FindEnabledNodeClusterConfigInfoResponse 85, // 98: pb.NodeClusterService.updateNodeClusterPinned:output_type -> pb.RPCSuccess 56, // 99: pb.NodeClusterService.findEnabledNodeClusterWebPPolicy:output_type -> pb.FindEnabledNodeClusterWebPPolicyResponse 85, // 100: pb.NodeClusterService.updateNodeClusterWebPPolicy:output_type -> pb.RPCSuccess 59, // 101: pb.NodeClusterService.findEnabledNodeClusterUAMPolicy:output_type -> pb.FindEnabledNodeClusterUAMPolicyResponse 85, // 102: pb.NodeClusterService.updateNodeClusterUAMPolicy:output_type -> pb.RPCSuccess 62, // 103: pb.NodeClusterService.findEnabledNodeClusterHTTPCCPolicy:output_type -> pb.FindEnabledNodeClusterHTTPCCPolicyResponse 85, // 104: pb.NodeClusterService.updateNodeClusterHTTPCCPolicy:output_type -> pb.RPCSuccess 65, // 105: pb.NodeClusterService.findNodeClusterDDoSProtection:output_type -> pb.FindNodeClusterDDoSProtectionResponse 85, // 106: pb.NodeClusterService.updateNodeClusterDDoSProtection:output_type -> pb.RPCSuccess 68, // 107: pb.NodeClusterService.findNodeClusterGlobalServerConfig:output_type -> pb.FindNodeClusterGlobalServerConfigResponse 85, // 108: pb.NodeClusterService.updateNodeClusterGlobalServerConfig:output_type -> pb.RPCSuccess 71, // 109: pb.NodeClusterService.findNodeClusterHTTPPagesPolicy:output_type -> pb.FindNodeClusterHTTPPagesPolicyResponse 85, // 110: pb.NodeClusterService.updateNodeClusterHTTPPagesPolicy:output_type -> pb.RPCSuccess 74, // 111: pb.NodeClusterService.findNodeClusterHTTP3Policy:output_type -> pb.FindNodeClusterHTTP3PolicyResponse 85, // 112: pb.NodeClusterService.updateNodeClusterHTTP3Policy:output_type -> pb.RPCSuccess 77, // 113: pb.NodeClusterService.findNodeClusterNetworkSecurityPolicy:output_type -> pb.FindNodeClusterNetworkSecurityPolicyResponse 85, // 114: pb.NodeClusterService.updateNodeClusterNetworkSecurityPolicy:output_type -> pb.RPCSuccess 64, // [64:115] is the sub-list for method output_type 13, // [13:64] is the sub-list for method input_type 13, // [13:13] is the sub-list for extension type_name 13, // [13:13] is the sub-list for extension extendee 0, // [0:13] is the sub-list for field type_name } func init() { file_service_node_cluster_proto_init() } func file_service_node_cluster_proto_init() { if File_service_node_cluster_proto != nil { return } file_models_model_node_cluster_proto_init() file_models_model_api_node_proto_init() file_models_model_node_proto_init() file_models_rpc_messages_proto_init() file_models_model_dns_domain_proto_init() file_models_model_dns_provider_proto_init() if !protoimpl.UnsafeEnabled { file_service_node_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateNodeClusterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAPINodesWithNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAPINodesWithNodeClusterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodeClustersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledNodeClustersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledNodeClustersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterHealthCheckConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterHealthCheckConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterHealthCheckRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteNodeClusterHealthCheckRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteNodeClusterHealthCheckResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodeClustersWithNodeGrantIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithNodeGrantIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithNodeGrantIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterDNSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterDNSResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodeClustersWithDNSProviderIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodeClustersWithDNSDomainIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithDNSDomainIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithDNSDomainIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckNodeClusterDNSNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckNodeClusterDNSNameResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterDNSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckNodeClusterDNSChangesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckNodeClusterDNSChangesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterTOARequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterTOAResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterTOARequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterHTTPCachePolicyIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterHTTPFirewallPolicyIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterSystemServiceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterSystemServiceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterSystemServiceResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindFreePortInNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindFreePortInNodeClusterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckPortIsUsingInNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckPortIsUsingInNodeClusterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindLatestNodeClustersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindLatestNodeClustersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterConfigInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterConfigInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterPinnedRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterWebPPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterWebPPolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterWebPPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterUAMPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterUAMPolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterUAMPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterHTTPCCPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledNodeClusterHTTPCCPolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterHTTPCCPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterDDoSProtectionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterDDoSProtectionResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterDDoSProtectionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterGlobalServerConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterGlobalServerConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterGlobalServerConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterHTTPPagesPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterHTTPPagesPolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterHTTPPagesPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterHTTP3PolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterHTTP3PolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterHTTP3PolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterNetworkSecurityPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNodeClusterNetworkSecurityPolicyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeClusterNetworkSecurityPolicyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_node_cluster_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteNodeClusterHealthCheckResponse_Result); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_node_cluster_proto_rawDesc, NumEnums: 0, NumMessages: 80, NumExtensions: 0, NumServices: 1, }, GoTypes: file_service_node_cluster_proto_goTypes, DependencyIndexes: file_service_node_cluster_proto_depIdxs, MessageInfos: file_service_node_cluster_proto_msgTypes, }.Build() File_service_node_cluster_proto = out.File file_service_node_cluster_proto_rawDesc = nil file_service_node_cluster_proto_goTypes = nil file_service_node_cluster_proto_depIdxs = nil }