diff --git a/pkg/rpc/pb/model_dns_provider.pb.go b/pkg/rpc/pb/model_dns_provider.pb.go new file mode 100644 index 0000000..9918058 --- /dev/null +++ b/pkg/rpc/pb/model_dns_provider.pb.go @@ -0,0 +1,205 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_dns_provider.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type DNSProvider struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + TypeName string `protobuf:"bytes,4,opt,name=typeName,proto3" json:"typeName,omitempty"` + ApiParamsJSON []byte `protobuf:"bytes,5,opt,name=apiParamsJSON,proto3" json:"apiParamsJSON,omitempty"` + RoutesJSON []byte `protobuf:"bytes,6,opt,name=routesJSON,proto3" json:"routesJSON,omitempty"` + DataUpdatedAt int64 `protobuf:"varint,7,opt,name=dataUpdatedAt,proto3" json:"dataUpdatedAt,omitempty"` +} + +func (x *DNSProvider) Reset() { + *x = DNSProvider{} + if protoimpl.UnsafeEnabled { + mi := &file_model_dns_provider_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DNSProvider) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DNSProvider) ProtoMessage() {} + +func (x *DNSProvider) ProtoReflect() protoreflect.Message { + mi := &file_model_dns_provider_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 DNSProvider.ProtoReflect.Descriptor instead. +func (*DNSProvider) Descriptor() ([]byte, []int) { + return file_model_dns_provider_proto_rawDescGZIP(), []int{0} +} + +func (x *DNSProvider) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DNSProvider) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DNSProvider) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *DNSProvider) GetTypeName() string { + if x != nil { + return x.TypeName + } + return "" +} + +func (x *DNSProvider) GetApiParamsJSON() []byte { + if x != nil { + return x.ApiParamsJSON + } + return nil +} + +func (x *DNSProvider) GetRoutesJSON() []byte { + if x != nil { + return x.RoutesJSON + } + return nil +} + +func (x *DNSProvider) GetDataUpdatedAt() int64 { + if x != nil { + return x.DataUpdatedAt + } + return 0 +} + +var File_model_dns_provider_proto protoreflect.FileDescriptor + +var file_model_dns_provider_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xcd, + 0x01, 0x0a, 0x0b, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, + 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x70, 0x69, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_dns_provider_proto_rawDescOnce sync.Once + file_model_dns_provider_proto_rawDescData = file_model_dns_provider_proto_rawDesc +) + +func file_model_dns_provider_proto_rawDescGZIP() []byte { + file_model_dns_provider_proto_rawDescOnce.Do(func() { + file_model_dns_provider_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_dns_provider_proto_rawDescData) + }) + return file_model_dns_provider_proto_rawDescData +} + +var file_model_dns_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_dns_provider_proto_goTypes = []interface{}{ + (*DNSProvider)(nil), // 0: pb.DNSProvider +} +var file_model_dns_provider_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_dns_provider_proto_init() } +func file_model_dns_provider_proto_init() { + if File_model_dns_provider_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_dns_provider_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DNSProvider); 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_model_dns_provider_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_dns_provider_proto_goTypes, + DependencyIndexes: file_model_dns_provider_proto_depIdxs, + MessageInfos: file_model_dns_provider_proto_msgTypes, + }.Build() + File_model_dns_provider_proto = out.File + file_model_dns_provider_proto_rawDesc = nil + file_model_dns_provider_proto_goTypes = nil + file_model_dns_provider_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_server.pb.go b/pkg/rpc/pb/model_server.pb.go index 222919c..9b0d2e7 100644 --- a/pkg/rpc/pb/model_server.pb.go +++ b/pkg/rpc/pb/model_server.pb.go @@ -38,6 +38,7 @@ type Server struct { IncludeNodes []byte `protobuf:"bytes,5,opt,name=includeNodes,proto3" json:"includeNodes,omitempty"` ExcludeNodes []byte `protobuf:"bytes,6,opt,name=excludeNodes,proto3" json:"excludeNodes,omitempty"` CreatedAt int64 `protobuf:"varint,7,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + DnsName string `protobuf:"bytes,19,opt,name=dnsName,proto3" json:"dnsName,omitempty"` // 配置相关 Config []byte `protobuf:"bytes,17,opt,name=config,proto3" json:"config,omitempty"` ServerNamesJON []byte `protobuf:"bytes,8,opt,name=serverNamesJON,proto3" json:"serverNamesJON,omitempty"` @@ -141,6 +142,13 @@ func (x *Server) GetCreatedAt() int64 { return 0 } +func (x *Server) GetDnsName() string { + if x != nil { + return x.DnsName + } + return "" +} + func (x *Server) GetConfig() []byte { if x != nil { return x.Config @@ -232,7 +240,7 @@ var file_model_server_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x18, 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, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x04, 0x0a, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x04, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, @@ -246,32 +254,33 @@ var file_model_server_proto_rawDesc = []byte{ 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x4a, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08, 0x68, - 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x68, - 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, - 0x18, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x74, 0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, - 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x75, 0x6e, 0x69, - 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, - 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, - 0x4e, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x06, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, - 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, + 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, + 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x4f, 0x4e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x4a, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, + 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, + 0x4e, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6c, 0x73, + 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x4a, + 0x53, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, + 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, + 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, + 0x53, 0x4f, 0x4e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x29, 0x0a, 0x07, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, + 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/rpc/pb/service_dns_provider.pb.go b/pkg/rpc/pb/service_dns_provider.pb.go new file mode 100644 index 0000000..e2fe1fa --- /dev/null +++ b/pkg/rpc/pb/service_dns_provider.pb.go @@ -0,0 +1,1362 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_dns_provider.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建服务商 +type CreateDNSProviderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + ApiParamsJSON []byte `protobuf:"bytes,3,opt,name=apiParamsJSON,proto3" json:"apiParamsJSON,omitempty"` + RoutesJSON []byte `protobuf:"bytes,4,opt,name=routesJSON,proto3" json:"routesJSON,omitempty"` +} + +func (x *CreateDNSProviderRequest) Reset() { + *x = CreateDNSProviderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDNSProviderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDNSProviderRequest) ProtoMessage() {} + +func (x *CreateDNSProviderRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 CreateDNSProviderRequest.ProtoReflect.Descriptor instead. +func (*CreateDNSProviderRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateDNSProviderRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateDNSProviderRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CreateDNSProviderRequest) GetApiParamsJSON() []byte { + if x != nil { + return x.ApiParamsJSON + } + return nil +} + +func (x *CreateDNSProviderRequest) GetRoutesJSON() []byte { + if x != nil { + return x.RoutesJSON + } + return nil +} + +type CreateDNSProviderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DnsProviderId int64 `protobuf:"varint,1,opt,name=dnsProviderId,proto3" json:"dnsProviderId,omitempty"` +} + +func (x *CreateDNSProviderResponse) Reset() { + *x = CreateDNSProviderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDNSProviderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDNSProviderResponse) ProtoMessage() {} + +func (x *CreateDNSProviderResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 CreateDNSProviderResponse.ProtoReflect.Descriptor instead. +func (*CreateDNSProviderResponse) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateDNSProviderResponse) GetDnsProviderId() int64 { + if x != nil { + return x.DnsProviderId + } + return 0 +} + +// 修改服务商 +type UpdateDNSProviderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DnsProviderId int64 `protobuf:"varint,1,opt,name=dnsProviderId,proto3" json:"dnsProviderId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ApiParamsJSON []byte `protobuf:"bytes,3,opt,name=apiParamsJSON,proto3" json:"apiParamsJSON,omitempty"` + RoutesJSON []byte `protobuf:"bytes,4,opt,name=routesJSON,proto3" json:"routesJSON,omitempty"` +} + +func (x *UpdateDNSProviderRequest) Reset() { + *x = UpdateDNSProviderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDNSProviderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDNSProviderRequest) ProtoMessage() {} + +func (x *UpdateDNSProviderRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 UpdateDNSProviderRequest.ProtoReflect.Descriptor instead. +func (*UpdateDNSProviderRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateDNSProviderRequest) GetDnsProviderId() int64 { + if x != nil { + return x.DnsProviderId + } + return 0 +} + +func (x *UpdateDNSProviderRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateDNSProviderRequest) GetApiParamsJSON() []byte { + if x != nil { + return x.ApiParamsJSON + } + return nil +} + +func (x *UpdateDNSProviderRequest) GetRoutesJSON() []byte { + if x != nil { + return x.RoutesJSON + } + return nil +} + +// 计算服务商数量 +type CountAllEnabledDNSProvidersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CountAllEnabledDNSProvidersRequest) Reset() { + *x = CountAllEnabledDNSProvidersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledDNSProvidersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledDNSProvidersRequest) ProtoMessage() {} + +func (x *CountAllEnabledDNSProvidersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 CountAllEnabledDNSProvidersRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledDNSProvidersRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{3} +} + +type CountAllEnabledDNSProvidersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledDNSProvidersResponse) Reset() { + *x = CountAllEnabledDNSProvidersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledDNSProvidersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledDNSProvidersResponse) ProtoMessage() {} + +func (x *CountAllEnabledDNSProvidersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 CountAllEnabledDNSProvidersResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledDNSProvidersResponse) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{4} +} + +func (x *CountAllEnabledDNSProvidersResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 列出单页的服务商信息 +type ListEnabledDNSProvidersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListEnabledDNSProvidersRequest) Reset() { + *x = ListEnabledDNSProvidersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledDNSProvidersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledDNSProvidersRequest) ProtoMessage() {} + +func (x *ListEnabledDNSProvidersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 ListEnabledDNSProvidersRequest.ProtoReflect.Descriptor instead. +func (*ListEnabledDNSProvidersRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{5} +} + +func (x *ListEnabledDNSProvidersRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListEnabledDNSProvidersRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListEnabledDNSProvidersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DnsProviders []*DNSProvider `protobuf:"bytes,1,rep,name=dnsProviders,proto3" json:"dnsProviders,omitempty"` +} + +func (x *ListEnabledDNSProvidersResponse) Reset() { + *x = ListEnabledDNSProvidersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEnabledDNSProvidersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEnabledDNSProvidersResponse) ProtoMessage() {} + +func (x *ListEnabledDNSProvidersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 ListEnabledDNSProvidersResponse.ProtoReflect.Descriptor instead. +func (*ListEnabledDNSProvidersResponse) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{6} +} + +func (x *ListEnabledDNSProvidersResponse) GetDnsProviders() []*DNSProvider { + if x != nil { + return x.DnsProviders + } + return nil +} + +// 删除服务商 +type DeleteDNSProviderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DnsProviderId int64 `protobuf:"varint,1,opt,name=dnsProviderId,proto3" json:"dnsProviderId,omitempty"` +} + +func (x *DeleteDNSProviderRequest) Reset() { + *x = DeleteDNSProviderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDNSProviderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDNSProviderRequest) ProtoMessage() {} + +func (x *DeleteDNSProviderRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 DeleteDNSProviderRequest.ProtoReflect.Descriptor instead. +func (*DeleteDNSProviderRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteDNSProviderRequest) GetDnsProviderId() int64 { + if x != nil { + return x.DnsProviderId + } + return 0 +} + +// 查找单个服务商 +type FindEnabledDNSProviderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DnsProviderId int64 `protobuf:"varint,1,opt,name=dnsProviderId,proto3" json:"dnsProviderId,omitempty"` +} + +func (x *FindEnabledDNSProviderRequest) Reset() { + *x = FindEnabledDNSProviderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledDNSProviderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledDNSProviderRequest) ProtoMessage() {} + +func (x *FindEnabledDNSProviderRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 FindEnabledDNSProviderRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledDNSProviderRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{8} +} + +func (x *FindEnabledDNSProviderRequest) GetDnsProviderId() int64 { + if x != nil { + return x.DnsProviderId + } + return 0 +} + +type FindEnabledDNSProviderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DnsProvider *DNSProvider `protobuf:"bytes,1,opt,name=dnsProvider,proto3" json:"dnsProvider,omitempty"` +} + +func (x *FindEnabledDNSProviderResponse) Reset() { + *x = FindEnabledDNSProviderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledDNSProviderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledDNSProviderResponse) ProtoMessage() {} + +func (x *FindEnabledDNSProviderResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 FindEnabledDNSProviderResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledDNSProviderResponse) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{9} +} + +func (x *FindEnabledDNSProviderResponse) GetDnsProvider() *DNSProvider { + if x != nil { + return x.DnsProvider + } + return nil +} + +// 取得所有服务商类型 +type FindAllDNSProviderTypesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllDNSProviderTypesRequest) Reset() { + *x = FindAllDNSProviderTypesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllDNSProviderTypesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllDNSProviderTypesRequest) ProtoMessage() {} + +func (x *FindAllDNSProviderTypesRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 FindAllDNSProviderTypesRequest.ProtoReflect.Descriptor instead. +func (*FindAllDNSProviderTypesRequest) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{10} +} + +type FindAllDNSProviderTypesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProviderTypes []*DNSProviderType `protobuf:"bytes,1,rep,name=providerTypes,proto3" json:"providerTypes,omitempty"` +} + +func (x *FindAllDNSProviderTypesResponse) Reset() { + *x = FindAllDNSProviderTypesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllDNSProviderTypesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllDNSProviderTypesResponse) ProtoMessage() {} + +func (x *FindAllDNSProviderTypesResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 FindAllDNSProviderTypesResponse.ProtoReflect.Descriptor instead. +func (*FindAllDNSProviderTypesResponse) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{11} +} + +func (x *FindAllDNSProviderTypesResponse) GetProviderTypes() []*DNSProviderType { + if x != nil { + return x.ProviderTypes + } + return nil +} + +type DNSProviderType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *DNSProviderType) Reset() { + *x = DNSProviderType{} + if protoimpl.UnsafeEnabled { + mi := &file_service_dns_provider_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DNSProviderType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DNSProviderType) ProtoMessage() {} + +func (x *DNSProviderType) ProtoReflect() protoreflect.Message { + mi := &file_service_dns_provider_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 DNSProviderType.ProtoReflect.Descriptor instead. +func (*DNSProviderType) Descriptor() ([]byte, []int) { + return file_service_dns_provider_proto_rawDescGZIP(), []int{12} +} + +func (x *DNSProviderType) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DNSProviderType) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +var File_service_dns_provider_proto protoreflect.FileDescriptor + +var file_service_dns_provider_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, + 0x1a, 0x12, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 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, 0x88, + 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 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, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x70, 0x69, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x41, 0x0a, 0x19, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x9a, 0x01, 0x0a, + 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 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, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x70, 0x69, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x24, 0x0a, 0x22, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x3b, 0x0a, 0x23, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4c, 0x0a, 0x1e, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x56, 0x0a, 0x1f, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x0c, 0x64, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x64, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x73, 0x22, 0x40, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x45, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x53, 0x0a, 0x1e, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, + 0x0b, 0x64, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x22, 0x20, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x44, 0x4e, 0x53, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x5c, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x44, 0x4e, 0x53, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, + 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x22, 0x39, 0x0a, 0x0f, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x91, 0x05, 0x0a, 0x12, + 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x4e, + 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, + 0x1b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x17, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 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, 0x44, 0x4e, 0x53, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 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, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, + 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x6c, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x44, 0x4e, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_dns_provider_proto_rawDescOnce sync.Once + file_service_dns_provider_proto_rawDescData = file_service_dns_provider_proto_rawDesc +) + +func file_service_dns_provider_proto_rawDescGZIP() []byte { + file_service_dns_provider_proto_rawDescOnce.Do(func() { + file_service_dns_provider_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_dns_provider_proto_rawDescData) + }) + return file_service_dns_provider_proto_rawDescData +} + +var file_service_dns_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_service_dns_provider_proto_goTypes = []interface{}{ + (*CreateDNSProviderRequest)(nil), // 0: pb.CreateDNSProviderRequest + (*CreateDNSProviderResponse)(nil), // 1: pb.CreateDNSProviderResponse + (*UpdateDNSProviderRequest)(nil), // 2: pb.UpdateDNSProviderRequest + (*CountAllEnabledDNSProvidersRequest)(nil), // 3: pb.CountAllEnabledDNSProvidersRequest + (*CountAllEnabledDNSProvidersResponse)(nil), // 4: pb.CountAllEnabledDNSProvidersResponse + (*ListEnabledDNSProvidersRequest)(nil), // 5: pb.ListEnabledDNSProvidersRequest + (*ListEnabledDNSProvidersResponse)(nil), // 6: pb.ListEnabledDNSProvidersResponse + (*DeleteDNSProviderRequest)(nil), // 7: pb.DeleteDNSProviderRequest + (*FindEnabledDNSProviderRequest)(nil), // 8: pb.FindEnabledDNSProviderRequest + (*FindEnabledDNSProviderResponse)(nil), // 9: pb.FindEnabledDNSProviderResponse + (*FindAllDNSProviderTypesRequest)(nil), // 10: pb.FindAllDNSProviderTypesRequest + (*FindAllDNSProviderTypesResponse)(nil), // 11: pb.FindAllDNSProviderTypesResponse + (*DNSProviderType)(nil), // 12: pb.DNSProviderType + (*DNSProvider)(nil), // 13: pb.DNSProvider + (*RPCUpdateSuccess)(nil), // 14: pb.RPCUpdateSuccess + (*RPCDeleteSuccess)(nil), // 15: pb.RPCDeleteSuccess +} +var file_service_dns_provider_proto_depIdxs = []int32{ + 13, // 0: pb.ListEnabledDNSProvidersResponse.dnsProviders:type_name -> pb.DNSProvider + 13, // 1: pb.FindEnabledDNSProviderResponse.dnsProvider:type_name -> pb.DNSProvider + 12, // 2: pb.FindAllDNSProviderTypesResponse.providerTypes:type_name -> pb.DNSProviderType + 0, // 3: pb.DNSProviderService.createDNSProvider:input_type -> pb.CreateDNSProviderRequest + 2, // 4: pb.DNSProviderService.updateDNSProvider:input_type -> pb.UpdateDNSProviderRequest + 3, // 5: pb.DNSProviderService.countAllEnabledDNSProviders:input_type -> pb.CountAllEnabledDNSProvidersRequest + 5, // 6: pb.DNSProviderService.listEnabledDNSProviders:input_type -> pb.ListEnabledDNSProvidersRequest + 7, // 7: pb.DNSProviderService.deleteDNSProvider:input_type -> pb.DeleteDNSProviderRequest + 8, // 8: pb.DNSProviderService.findEnabledDNSProvider:input_type -> pb.FindEnabledDNSProviderRequest + 10, // 9: pb.DNSProviderService.findAllDNSProviderTypes:input_type -> pb.FindAllDNSProviderTypesRequest + 1, // 10: pb.DNSProviderService.createDNSProvider:output_type -> pb.CreateDNSProviderResponse + 14, // 11: pb.DNSProviderService.updateDNSProvider:output_type -> pb.RPCUpdateSuccess + 4, // 12: pb.DNSProviderService.countAllEnabledDNSProviders:output_type -> pb.CountAllEnabledDNSProvidersResponse + 6, // 13: pb.DNSProviderService.listEnabledDNSProviders:output_type -> pb.ListEnabledDNSProvidersResponse + 15, // 14: pb.DNSProviderService.deleteDNSProvider:output_type -> pb.RPCDeleteSuccess + 9, // 15: pb.DNSProviderService.findEnabledDNSProvider:output_type -> pb.FindEnabledDNSProviderResponse + 11, // 16: pb.DNSProviderService.findAllDNSProviderTypes:output_type -> pb.FindAllDNSProviderTypesResponse + 10, // [10:17] is the sub-list for method output_type + 3, // [3:10] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_service_dns_provider_proto_init() } +func file_service_dns_provider_proto_init() { + if File_service_dns_provider_proto != nil { + return + } + file_rpc_messages_proto_init() + file_model_dns_provider_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_dns_provider_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDNSProviderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDNSProviderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDNSProviderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledDNSProvidersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledDNSProvidersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledDNSProvidersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledDNSProvidersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDNSProviderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledDNSProviderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledDNSProviderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllDNSProviderTypesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllDNSProviderTypesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_dns_provider_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DNSProviderType); 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_dns_provider_proto_rawDesc, + NumEnums: 0, + NumMessages: 13, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_dns_provider_proto_goTypes, + DependencyIndexes: file_service_dns_provider_proto_depIdxs, + MessageInfos: file_service_dns_provider_proto_msgTypes, + }.Build() + File_service_dns_provider_proto = out.File + file_service_dns_provider_proto_rawDesc = nil + file_service_dns_provider_proto_goTypes = nil + file_service_dns_provider_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// DNSProviderServiceClient is the client API for DNSProviderService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type DNSProviderServiceClient interface { + // 创建服务商 + CreateDNSProvider(ctx context.Context, in *CreateDNSProviderRequest, opts ...grpc.CallOption) (*CreateDNSProviderResponse, error) + // 修改服务商 + UpdateDNSProvider(ctx context.Context, in *UpdateDNSProviderRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) + // 计算服务商数量 + CountAllEnabledDNSProviders(ctx context.Context, in *CountAllEnabledDNSProvidersRequest, opts ...grpc.CallOption) (*CountAllEnabledDNSProvidersResponse, error) + // 列出单页服务商信息 + ListEnabledDNSProviders(ctx context.Context, in *ListEnabledDNSProvidersRequest, opts ...grpc.CallOption) (*ListEnabledDNSProvidersResponse, error) + // 删除服务商 + DeleteDNSProvider(ctx context.Context, in *DeleteDNSProviderRequest, opts ...grpc.CallOption) (*RPCDeleteSuccess, error) + // 查找单个服务商 + FindEnabledDNSProvider(ctx context.Context, in *FindEnabledDNSProviderRequest, opts ...grpc.CallOption) (*FindEnabledDNSProviderResponse, error) + // 取得所有服务商类型 + FindAllDNSProviderTypes(ctx context.Context, in *FindAllDNSProviderTypesRequest, opts ...grpc.CallOption) (*FindAllDNSProviderTypesResponse, error) +} + +type dNSProviderServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewDNSProviderServiceClient(cc grpc.ClientConnInterface) DNSProviderServiceClient { + return &dNSProviderServiceClient{cc} +} + +func (c *dNSProviderServiceClient) CreateDNSProvider(ctx context.Context, in *CreateDNSProviderRequest, opts ...grpc.CallOption) (*CreateDNSProviderResponse, error) { + out := new(CreateDNSProviderResponse) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/createDNSProvider", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dNSProviderServiceClient) UpdateDNSProvider(ctx context.Context, in *UpdateDNSProviderRequest, opts ...grpc.CallOption) (*RPCUpdateSuccess, error) { + out := new(RPCUpdateSuccess) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/updateDNSProvider", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dNSProviderServiceClient) CountAllEnabledDNSProviders(ctx context.Context, in *CountAllEnabledDNSProvidersRequest, opts ...grpc.CallOption) (*CountAllEnabledDNSProvidersResponse, error) { + out := new(CountAllEnabledDNSProvidersResponse) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/countAllEnabledDNSProviders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dNSProviderServiceClient) ListEnabledDNSProviders(ctx context.Context, in *ListEnabledDNSProvidersRequest, opts ...grpc.CallOption) (*ListEnabledDNSProvidersResponse, error) { + out := new(ListEnabledDNSProvidersResponse) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/listEnabledDNSProviders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dNSProviderServiceClient) DeleteDNSProvider(ctx context.Context, in *DeleteDNSProviderRequest, opts ...grpc.CallOption) (*RPCDeleteSuccess, error) { + out := new(RPCDeleteSuccess) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/deleteDNSProvider", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dNSProviderServiceClient) FindEnabledDNSProvider(ctx context.Context, in *FindEnabledDNSProviderRequest, opts ...grpc.CallOption) (*FindEnabledDNSProviderResponse, error) { + out := new(FindEnabledDNSProviderResponse) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/findEnabledDNSProvider", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dNSProviderServiceClient) FindAllDNSProviderTypes(ctx context.Context, in *FindAllDNSProviderTypesRequest, opts ...grpc.CallOption) (*FindAllDNSProviderTypesResponse, error) { + out := new(FindAllDNSProviderTypesResponse) + err := c.cc.Invoke(ctx, "/pb.DNSProviderService/findAllDNSProviderTypes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DNSProviderServiceServer is the server API for DNSProviderService service. +type DNSProviderServiceServer interface { + // 创建服务商 + CreateDNSProvider(context.Context, *CreateDNSProviderRequest) (*CreateDNSProviderResponse, error) + // 修改服务商 + UpdateDNSProvider(context.Context, *UpdateDNSProviderRequest) (*RPCUpdateSuccess, error) + // 计算服务商数量 + CountAllEnabledDNSProviders(context.Context, *CountAllEnabledDNSProvidersRequest) (*CountAllEnabledDNSProvidersResponse, error) + // 列出单页服务商信息 + ListEnabledDNSProviders(context.Context, *ListEnabledDNSProvidersRequest) (*ListEnabledDNSProvidersResponse, error) + // 删除服务商 + DeleteDNSProvider(context.Context, *DeleteDNSProviderRequest) (*RPCDeleteSuccess, error) + // 查找单个服务商 + FindEnabledDNSProvider(context.Context, *FindEnabledDNSProviderRequest) (*FindEnabledDNSProviderResponse, error) + // 取得所有服务商类型 + FindAllDNSProviderTypes(context.Context, *FindAllDNSProviderTypesRequest) (*FindAllDNSProviderTypesResponse, error) +} + +// UnimplementedDNSProviderServiceServer can be embedded to have forward compatible implementations. +type UnimplementedDNSProviderServiceServer struct { +} + +func (*UnimplementedDNSProviderServiceServer) CreateDNSProvider(context.Context, *CreateDNSProviderRequest) (*CreateDNSProviderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDNSProvider not implemented") +} +func (*UnimplementedDNSProviderServiceServer) UpdateDNSProvider(context.Context, *UpdateDNSProviderRequest) (*RPCUpdateSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDNSProvider not implemented") +} +func (*UnimplementedDNSProviderServiceServer) CountAllEnabledDNSProviders(context.Context, *CountAllEnabledDNSProvidersRequest) (*CountAllEnabledDNSProvidersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledDNSProviders not implemented") +} +func (*UnimplementedDNSProviderServiceServer) ListEnabledDNSProviders(context.Context, *ListEnabledDNSProvidersRequest) (*ListEnabledDNSProvidersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEnabledDNSProviders not implemented") +} +func (*UnimplementedDNSProviderServiceServer) DeleteDNSProvider(context.Context, *DeleteDNSProviderRequest) (*RPCDeleteSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDNSProvider not implemented") +} +func (*UnimplementedDNSProviderServiceServer) FindEnabledDNSProvider(context.Context, *FindEnabledDNSProviderRequest) (*FindEnabledDNSProviderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledDNSProvider not implemented") +} +func (*UnimplementedDNSProviderServiceServer) FindAllDNSProviderTypes(context.Context, *FindAllDNSProviderTypesRequest) (*FindAllDNSProviderTypesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllDNSProviderTypes not implemented") +} + +func RegisterDNSProviderServiceServer(s *grpc.Server, srv DNSProviderServiceServer) { + s.RegisterService(&_DNSProviderService_serviceDesc, srv) +} + +func _DNSProviderService_CreateDNSProvider_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDNSProviderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).CreateDNSProvider(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/CreateDNSProvider", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).CreateDNSProvider(ctx, req.(*CreateDNSProviderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DNSProviderService_UpdateDNSProvider_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDNSProviderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).UpdateDNSProvider(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/UpdateDNSProvider", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).UpdateDNSProvider(ctx, req.(*UpdateDNSProviderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DNSProviderService_CountAllEnabledDNSProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledDNSProvidersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).CountAllEnabledDNSProviders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/CountAllEnabledDNSProviders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).CountAllEnabledDNSProviders(ctx, req.(*CountAllEnabledDNSProvidersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DNSProviderService_ListEnabledDNSProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEnabledDNSProvidersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).ListEnabledDNSProviders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/ListEnabledDNSProviders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).ListEnabledDNSProviders(ctx, req.(*ListEnabledDNSProvidersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DNSProviderService_DeleteDNSProvider_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDNSProviderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).DeleteDNSProvider(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/DeleteDNSProvider", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).DeleteDNSProvider(ctx, req.(*DeleteDNSProviderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DNSProviderService_FindEnabledDNSProvider_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledDNSProviderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).FindEnabledDNSProvider(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/FindEnabledDNSProvider", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).FindEnabledDNSProvider(ctx, req.(*FindEnabledDNSProviderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DNSProviderService_FindAllDNSProviderTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllDNSProviderTypesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DNSProviderServiceServer).FindAllDNSProviderTypes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.DNSProviderService/FindAllDNSProviderTypes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DNSProviderServiceServer).FindAllDNSProviderTypes(ctx, req.(*FindAllDNSProviderTypesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _DNSProviderService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.DNSProviderService", + HandlerType: (*DNSProviderServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createDNSProvider", + Handler: _DNSProviderService_CreateDNSProvider_Handler, + }, + { + MethodName: "updateDNSProvider", + Handler: _DNSProviderService_UpdateDNSProvider_Handler, + }, + { + MethodName: "countAllEnabledDNSProviders", + Handler: _DNSProviderService_CountAllEnabledDNSProviders_Handler, + }, + { + MethodName: "listEnabledDNSProviders", + Handler: _DNSProviderService_ListEnabledDNSProviders_Handler, + }, + { + MethodName: "deleteDNSProvider", + Handler: _DNSProviderService_DeleteDNSProvider_Handler, + }, + { + MethodName: "findEnabledDNSProvider", + Handler: _DNSProviderService_FindEnabledDNSProvider_Handler, + }, + { + MethodName: "findAllDNSProviderTypes", + Handler: _DNSProviderService_FindAllDNSProviderTypes_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_dns_provider.proto", +} diff --git a/pkg/rpc/pb/service_node_cluster.pb.go b/pkg/rpc/pb/service_node_cluster.pb.go index c61b79c..84afa31 100644 --- a/pkg/rpc/pb/service_node_cluster.pb.go +++ b/pkg/rpc/pb/service_node_cluster.pb.go @@ -1255,6 +1255,212 @@ func (x *FindAllEnabledNodeClustersWithGrantIdResponse) GetClusters() []*NodeClu 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[25] + 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[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 FindEnabledNodeClusterDNSRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeClusterDNSRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{25} +} + +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 string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` + Provider *DNSProvider `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` +} + +func (x *FindEnabledNodeClusterDNSResponse) Reset() { + *x = FindEnabledNodeClusterDNSResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[26] + 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[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 FindEnabledNodeClusterDNSResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeClusterDNSResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{26} +} + +func (x *FindEnabledNodeClusterDNSResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FindEnabledNodeClusterDNSResponse) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *FindEnabledNodeClusterDNSResponse) GetProvider() *DNSProvider { + if x != nil { + return x.Provider + } + return nil +} + +// 计算使用某个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[27] + 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[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 CountAllEnabledNodeClustersWithDNSProviderIdRequest.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodeClustersWithDNSProviderIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{27} +} + +func (x *CountAllEnabledNodeClustersWithDNSProviderIdRequest) GetDnsProviderId() int64 { + if x != nil { + return x.DnsProviderId + } + return 0 +} + +type CountAllEnabledNodeClustersWithDNSProviderIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *CountAllEnabledNodeClustersWithDNSProviderIdResponse) Reset() { + *x = CountAllEnabledNodeClustersWithDNSProviderIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountAllEnabledNodeClustersWithDNSProviderIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountAllEnabledNodeClustersWithDNSProviderIdResponse) ProtoMessage() {} + +func (x *CountAllEnabledNodeClustersWithDNSProviderIdResponse) 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 CountAllEnabledNodeClustersWithDNSProviderIdResponse.ProtoReflect.Descriptor instead. +func (*CountAllEnabledNodeClustersWithDNSProviderIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{28} +} + +func (x *CountAllEnabledNodeClustersWithDNSProviderIdResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + type ExecuteNodeClusterHealthCheckResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1270,7 +1476,7 @@ type ExecuteNodeClusterHealthCheckResponse_Result struct { func (x *ExecuteNodeClusterHealthCheckResponse_Result) Reset() { *x = ExecuteNodeClusterHealthCheckResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_service_node_cluster_proto_msgTypes[25] + mi := &file_service_node_cluster_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1283,7 +1489,7 @@ func (x *ExecuteNodeClusterHealthCheckResponse_Result) String() string { func (*ExecuteNodeClusterHealthCheckResponse_Result) ProtoMessage() {} func (x *ExecuteNodeClusterHealthCheckResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_service_node_cluster_proto_msgTypes[25] + mi := &file_service_node_cluster_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1344,234 +1550,276 @@ var file_service_node_cluster_proto_rawDesc = []byte{ 0x6c, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 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, 0x51, 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, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x23, - 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x68, 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, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 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, - 0x22, 0x39, 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, 0x1c, 0x0a, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x86, 0x01, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 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, 0x18, 0x0a, 0x07, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 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, 0x22, 0x38, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, - 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, - 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4b, 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, - 0x29, 0x0a, 0x07, 0x63, 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, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x42, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 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, 0x24, 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, 0x22, 0x3b, 0x0a, 0x23, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 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, 0x51, 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, 0x2b, 0x0a, 0x08, 0x63, + 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, 0x08, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, + 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4c, 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, 0x22, 0x4e, 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, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x47, 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, + 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x22, 0x68, 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, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x67, 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, 0x22, 0x39, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x86, 0x01, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x22, 0x58, 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, 0x2c, 0x0a, 0x11, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x6d, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 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, 0x44, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 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, 0x49, 0x0a, 0x2d, - 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, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x46, 0x0a, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x48, 0x0a, 0x2c, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x2d, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x32, 0xec, 0x0b, 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, 0x47, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 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, 0x14, 0x2e, 0x70, - 0x62, 0x2e, 0x52, 0x50, 0x43, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 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, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 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, 0x22, 0x38, + 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, 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, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4b, 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, 0x29, 0x0a, 0x07, 0x63, 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, 0x07, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x22, 0x42, 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, 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, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, - 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, 0x43, 0x68, 0x61, 0x6e, 0x67, - 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, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 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, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 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, 0x24, 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, 0x22, 0x3b, 0x0a, 0x23, 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, 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, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x4c, 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, 0x22, 0x4e, 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, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x22, 0x47, 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, 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, 0x5d, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, - 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x8f, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x58, 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, 0x2c, 0x0a, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x6d, 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, 0x1c, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 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, 0x44, 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, 0x1c, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 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, 0x49, 0x0a, 0x2d, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x31, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, + 0x64, 0x22, 0x46, 0x0a, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x48, 0x0a, 0x2c, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x2d, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x25, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, + 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 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, 0x08, 0x63, 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, 0x7c, 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, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 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, 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, 0x4c, 0x0a, 0x34, 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, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x32, 0xfa, 0x0d, 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, 0x47, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 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, 0x6b, 0x0a, + 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 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, 0x43, 0x68, 0x61, 0x6e, 0x67, 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, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 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, 0x27, 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, 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, 0x5d, 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, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x8f, 0x01, 0x0a, 0x26, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x31, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x32, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x25, 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, + 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, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 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, 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, 0xa1, 0x01, + 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, 0x38, 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, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1586,82 +1834,92 @@ func file_service_node_cluster_proto_rawDescGZIP() []byte { return file_service_node_cluster_proto_rawDescData } -var file_service_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_service_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_service_node_cluster_proto_goTypes = []interface{}{ - (*FindAllEnabledNodeClustersRequest)(nil), // 0: pb.FindAllEnabledNodeClustersRequest - (*FindAllEnabledNodeClustersResponse)(nil), // 1: pb.FindAllEnabledNodeClustersResponse - (*FindAllChangedNodeClustersRequest)(nil), // 2: pb.FindAllChangedNodeClustersRequest - (*FindAllChangedNodeClustersResponse)(nil), // 3: pb.FindAllChangedNodeClustersResponse - (*CreateNodeClusterRequest)(nil), // 4: pb.CreateNodeClusterRequest - (*CreateNodeClusterResponse)(nil), // 5: pb.CreateNodeClusterResponse - (*UpdateNodeClusterRequest)(nil), // 6: pb.UpdateNodeClusterRequest - (*DeleteNodeClusterRequest)(nil), // 7: pb.DeleteNodeClusterRequest - (*FindEnabledNodeClusterRequest)(nil), // 8: pb.FindEnabledNodeClusterRequest - (*FindEnabledNodeClusterResponse)(nil), // 9: pb.FindEnabledNodeClusterResponse - (*FindAPINodesWithNodeClusterRequest)(nil), // 10: pb.FindAPINodesWithNodeClusterRequest - (*FindAPINodesWithNodeClusterResponse)(nil), // 11: pb.FindAPINodesWithNodeClusterResponse - (*CountAllEnabledNodeClustersRequest)(nil), // 12: pb.CountAllEnabledNodeClustersRequest - (*CountAllEnabledNodeClustersResponse)(nil), // 13: pb.CountAllEnabledNodeClustersResponse - (*ListEnabledNodeClustersRequest)(nil), // 14: pb.ListEnabledNodeClustersRequest - (*ListEnabledNodeClustersResponse)(nil), // 15: pb.ListEnabledNodeClustersResponse - (*FindNodeClusterHealthCheckConfigRequest)(nil), // 16: pb.FindNodeClusterHealthCheckConfigRequest - (*FindNodeClusterHealthCheckConfigResponse)(nil), // 17: pb.FindNodeClusterHealthCheckConfigResponse - (*UpdateNodeClusterHealthCheckRequest)(nil), // 18: pb.UpdateNodeClusterHealthCheckRequest - (*ExecuteNodeClusterHealthCheckRequest)(nil), // 19: pb.ExecuteNodeClusterHealthCheckRequest - (*ExecuteNodeClusterHealthCheckResponse)(nil), // 20: pb.ExecuteNodeClusterHealthCheckResponse - (*CountAllEnabledNodeClustersWithGrantIdRequest)(nil), // 21: pb.CountAllEnabledNodeClustersWithGrantIdRequest - (*CountAllEnabledNodeClustersWithGrantIdResponse)(nil), // 22: pb.CountAllEnabledNodeClustersWithGrantIdResponse - (*FindAllEnabledNodeClustersWithGrantIdRequest)(nil), // 23: pb.FindAllEnabledNodeClustersWithGrantIdRequest - (*FindAllEnabledNodeClustersWithGrantIdResponse)(nil), // 24: pb.FindAllEnabledNodeClustersWithGrantIdResponse - (*ExecuteNodeClusterHealthCheckResponse_Result)(nil), // 25: pb.ExecuteNodeClusterHealthCheckResponse.Result - (*NodeCluster)(nil), // 26: pb.NodeCluster - (*APINode)(nil), // 27: pb.APINode - (*Node)(nil), // 28: pb.Node - (*RPCUpdateSuccess)(nil), // 29: pb.RPCUpdateSuccess - (*RPCDeleteSuccess)(nil), // 30: pb.RPCDeleteSuccess + (*FindAllEnabledNodeClustersRequest)(nil), // 0: pb.FindAllEnabledNodeClustersRequest + (*FindAllEnabledNodeClustersResponse)(nil), // 1: pb.FindAllEnabledNodeClustersResponse + (*FindAllChangedNodeClustersRequest)(nil), // 2: pb.FindAllChangedNodeClustersRequest + (*FindAllChangedNodeClustersResponse)(nil), // 3: pb.FindAllChangedNodeClustersResponse + (*CreateNodeClusterRequest)(nil), // 4: pb.CreateNodeClusterRequest + (*CreateNodeClusterResponse)(nil), // 5: pb.CreateNodeClusterResponse + (*UpdateNodeClusterRequest)(nil), // 6: pb.UpdateNodeClusterRequest + (*DeleteNodeClusterRequest)(nil), // 7: pb.DeleteNodeClusterRequest + (*FindEnabledNodeClusterRequest)(nil), // 8: pb.FindEnabledNodeClusterRequest + (*FindEnabledNodeClusterResponse)(nil), // 9: pb.FindEnabledNodeClusterResponse + (*FindAPINodesWithNodeClusterRequest)(nil), // 10: pb.FindAPINodesWithNodeClusterRequest + (*FindAPINodesWithNodeClusterResponse)(nil), // 11: pb.FindAPINodesWithNodeClusterResponse + (*CountAllEnabledNodeClustersRequest)(nil), // 12: pb.CountAllEnabledNodeClustersRequest + (*CountAllEnabledNodeClustersResponse)(nil), // 13: pb.CountAllEnabledNodeClustersResponse + (*ListEnabledNodeClustersRequest)(nil), // 14: pb.ListEnabledNodeClustersRequest + (*ListEnabledNodeClustersResponse)(nil), // 15: pb.ListEnabledNodeClustersResponse + (*FindNodeClusterHealthCheckConfigRequest)(nil), // 16: pb.FindNodeClusterHealthCheckConfigRequest + (*FindNodeClusterHealthCheckConfigResponse)(nil), // 17: pb.FindNodeClusterHealthCheckConfigResponse + (*UpdateNodeClusterHealthCheckRequest)(nil), // 18: pb.UpdateNodeClusterHealthCheckRequest + (*ExecuteNodeClusterHealthCheckRequest)(nil), // 19: pb.ExecuteNodeClusterHealthCheckRequest + (*ExecuteNodeClusterHealthCheckResponse)(nil), // 20: pb.ExecuteNodeClusterHealthCheckResponse + (*CountAllEnabledNodeClustersWithGrantIdRequest)(nil), // 21: pb.CountAllEnabledNodeClustersWithGrantIdRequest + (*CountAllEnabledNodeClustersWithGrantIdResponse)(nil), // 22: pb.CountAllEnabledNodeClustersWithGrantIdResponse + (*FindAllEnabledNodeClustersWithGrantIdRequest)(nil), // 23: pb.FindAllEnabledNodeClustersWithGrantIdRequest + (*FindAllEnabledNodeClustersWithGrantIdResponse)(nil), // 24: pb.FindAllEnabledNodeClustersWithGrantIdResponse + (*FindEnabledNodeClusterDNSRequest)(nil), // 25: pb.FindEnabledNodeClusterDNSRequest + (*FindEnabledNodeClusterDNSResponse)(nil), // 26: pb.FindEnabledNodeClusterDNSResponse + (*CountAllEnabledNodeClustersWithDNSProviderIdRequest)(nil), // 27: pb.CountAllEnabledNodeClustersWithDNSProviderIdRequest + (*CountAllEnabledNodeClustersWithDNSProviderIdResponse)(nil), // 28: pb.CountAllEnabledNodeClustersWithDNSProviderIdResponse + (*ExecuteNodeClusterHealthCheckResponse_Result)(nil), // 29: pb.ExecuteNodeClusterHealthCheckResponse.Result + (*NodeCluster)(nil), // 30: pb.NodeCluster + (*APINode)(nil), // 31: pb.APINode + (*DNSProvider)(nil), // 32: pb.DNSProvider + (*Node)(nil), // 33: pb.Node + (*RPCUpdateSuccess)(nil), // 34: pb.RPCUpdateSuccess + (*RPCDeleteSuccess)(nil), // 35: pb.RPCDeleteSuccess } var file_service_node_cluster_proto_depIdxs = []int32{ - 26, // 0: pb.FindAllEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster - 26, // 1: pb.FindAllChangedNodeClustersResponse.clusters:type_name -> pb.NodeCluster - 26, // 2: pb.FindEnabledNodeClusterResponse.cluster:type_name -> pb.NodeCluster - 27, // 3: pb.FindAPINodesWithNodeClusterResponse.apiNodes:type_name -> pb.APINode - 26, // 4: pb.ListEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster - 25, // 5: pb.ExecuteNodeClusterHealthCheckResponse.results:type_name -> pb.ExecuteNodeClusterHealthCheckResponse.Result - 26, // 6: pb.FindAllEnabledNodeClustersWithGrantIdResponse.clusters:type_name -> pb.NodeCluster - 28, // 7: pb.ExecuteNodeClusterHealthCheckResponse.Result.node:type_name -> pb.Node - 4, // 8: pb.NodeClusterService.createNodeCluster:input_type -> pb.CreateNodeClusterRequest - 6, // 9: pb.NodeClusterService.updateNodeCluster:input_type -> pb.UpdateNodeClusterRequest - 7, // 10: pb.NodeClusterService.deleteNodeCluster:input_type -> pb.DeleteNodeClusterRequest - 8, // 11: pb.NodeClusterService.findEnabledNodeCluster:input_type -> pb.FindEnabledNodeClusterRequest - 10, // 12: pb.NodeClusterService.findAPINodesWithNodeCluster:input_type -> pb.FindAPINodesWithNodeClusterRequest - 0, // 13: pb.NodeClusterService.findAllEnabledNodeClusters:input_type -> pb.FindAllEnabledNodeClustersRequest - 2, // 14: pb.NodeClusterService.findAllChangedNodeClusters:input_type -> pb.FindAllChangedNodeClustersRequest - 12, // 15: pb.NodeClusterService.countAllEnabledNodeClusters:input_type -> pb.CountAllEnabledNodeClustersRequest - 14, // 16: pb.NodeClusterService.listEnabledNodeClusters:input_type -> pb.ListEnabledNodeClustersRequest - 16, // 17: pb.NodeClusterService.findNodeClusterHealthCheckConfig:input_type -> pb.FindNodeClusterHealthCheckConfigRequest - 18, // 18: pb.NodeClusterService.updateNodeClusterHealthCheck:input_type -> pb.UpdateNodeClusterHealthCheckRequest - 19, // 19: pb.NodeClusterService.executeNodeClusterHealthCheck:input_type -> pb.ExecuteNodeClusterHealthCheckRequest - 21, // 20: pb.NodeClusterService.countAllEnabledNodeClustersWithGrantId:input_type -> pb.CountAllEnabledNodeClustersWithGrantIdRequest - 23, // 21: pb.NodeClusterService.findAllEnabledNodeClustersWithGrantId:input_type -> pb.FindAllEnabledNodeClustersWithGrantIdRequest - 5, // 22: pb.NodeClusterService.createNodeCluster:output_type -> pb.CreateNodeClusterResponse - 29, // 23: pb.NodeClusterService.updateNodeCluster:output_type -> pb.RPCUpdateSuccess - 30, // 24: pb.NodeClusterService.deleteNodeCluster:output_type -> pb.RPCDeleteSuccess - 9, // 25: pb.NodeClusterService.findEnabledNodeCluster:output_type -> pb.FindEnabledNodeClusterResponse - 11, // 26: pb.NodeClusterService.findAPINodesWithNodeCluster:output_type -> pb.FindAPINodesWithNodeClusterResponse - 1, // 27: pb.NodeClusterService.findAllEnabledNodeClusters:output_type -> pb.FindAllEnabledNodeClustersResponse - 3, // 28: pb.NodeClusterService.findAllChangedNodeClusters:output_type -> pb.FindAllChangedNodeClustersResponse - 13, // 29: pb.NodeClusterService.countAllEnabledNodeClusters:output_type -> pb.CountAllEnabledNodeClustersResponse - 15, // 30: pb.NodeClusterService.listEnabledNodeClusters:output_type -> pb.ListEnabledNodeClustersResponse - 17, // 31: pb.NodeClusterService.findNodeClusterHealthCheckConfig:output_type -> pb.FindNodeClusterHealthCheckConfigResponse - 29, // 32: pb.NodeClusterService.updateNodeClusterHealthCheck:output_type -> pb.RPCUpdateSuccess - 20, // 33: pb.NodeClusterService.executeNodeClusterHealthCheck:output_type -> pb.ExecuteNodeClusterHealthCheckResponse - 22, // 34: pb.NodeClusterService.countAllEnabledNodeClustersWithGrantId:output_type -> pb.CountAllEnabledNodeClustersWithGrantIdResponse - 24, // 35: pb.NodeClusterService.findAllEnabledNodeClustersWithGrantId:output_type -> pb.FindAllEnabledNodeClustersWithGrantIdResponse - 22, // [22:36] is the sub-list for method output_type - 8, // [8:22] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 30, // 0: pb.FindAllEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 30, // 1: pb.FindAllChangedNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 30, // 2: pb.FindEnabledNodeClusterResponse.cluster:type_name -> pb.NodeCluster + 31, // 3: pb.FindAPINodesWithNodeClusterResponse.apiNodes:type_name -> pb.APINode + 30, // 4: pb.ListEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 29, // 5: pb.ExecuteNodeClusterHealthCheckResponse.results:type_name -> pb.ExecuteNodeClusterHealthCheckResponse.Result + 30, // 6: pb.FindAllEnabledNodeClustersWithGrantIdResponse.clusters:type_name -> pb.NodeCluster + 32, // 7: pb.FindEnabledNodeClusterDNSResponse.provider:type_name -> pb.DNSProvider + 33, // 8: pb.ExecuteNodeClusterHealthCheckResponse.Result.node:type_name -> pb.Node + 4, // 9: pb.NodeClusterService.createNodeCluster:input_type -> pb.CreateNodeClusterRequest + 6, // 10: pb.NodeClusterService.updateNodeCluster:input_type -> pb.UpdateNodeClusterRequest + 7, // 11: pb.NodeClusterService.deleteNodeCluster:input_type -> pb.DeleteNodeClusterRequest + 8, // 12: pb.NodeClusterService.findEnabledNodeCluster:input_type -> pb.FindEnabledNodeClusterRequest + 10, // 13: pb.NodeClusterService.findAPINodesWithNodeCluster:input_type -> pb.FindAPINodesWithNodeClusterRequest + 0, // 14: pb.NodeClusterService.findAllEnabledNodeClusters:input_type -> pb.FindAllEnabledNodeClustersRequest + 2, // 15: pb.NodeClusterService.findAllChangedNodeClusters:input_type -> pb.FindAllChangedNodeClustersRequest + 12, // 16: pb.NodeClusterService.countAllEnabledNodeClusters:input_type -> pb.CountAllEnabledNodeClustersRequest + 14, // 17: pb.NodeClusterService.listEnabledNodeClusters:input_type -> pb.ListEnabledNodeClustersRequest + 16, // 18: pb.NodeClusterService.findNodeClusterHealthCheckConfig:input_type -> pb.FindNodeClusterHealthCheckConfigRequest + 18, // 19: pb.NodeClusterService.updateNodeClusterHealthCheck:input_type -> pb.UpdateNodeClusterHealthCheckRequest + 19, // 20: pb.NodeClusterService.executeNodeClusterHealthCheck:input_type -> pb.ExecuteNodeClusterHealthCheckRequest + 21, // 21: pb.NodeClusterService.countAllEnabledNodeClustersWithGrantId:input_type -> pb.CountAllEnabledNodeClustersWithGrantIdRequest + 23, // 22: pb.NodeClusterService.findAllEnabledNodeClustersWithGrantId:input_type -> pb.FindAllEnabledNodeClustersWithGrantIdRequest + 25, // 23: pb.NodeClusterService.findEnabledNodeClusterDNS:input_type -> pb.FindEnabledNodeClusterDNSRequest + 27, // 24: pb.NodeClusterService.countAllEnabledNodeClustersWithDNSProviderId:input_type -> pb.CountAllEnabledNodeClustersWithDNSProviderIdRequest + 5, // 25: pb.NodeClusterService.createNodeCluster:output_type -> pb.CreateNodeClusterResponse + 34, // 26: pb.NodeClusterService.updateNodeCluster:output_type -> pb.RPCUpdateSuccess + 35, // 27: pb.NodeClusterService.deleteNodeCluster:output_type -> pb.RPCDeleteSuccess + 9, // 28: pb.NodeClusterService.findEnabledNodeCluster:output_type -> pb.FindEnabledNodeClusterResponse + 11, // 29: pb.NodeClusterService.findAPINodesWithNodeCluster:output_type -> pb.FindAPINodesWithNodeClusterResponse + 1, // 30: pb.NodeClusterService.findAllEnabledNodeClusters:output_type -> pb.FindAllEnabledNodeClustersResponse + 3, // 31: pb.NodeClusterService.findAllChangedNodeClusters:output_type -> pb.FindAllChangedNodeClustersResponse + 13, // 32: pb.NodeClusterService.countAllEnabledNodeClusters:output_type -> pb.CountAllEnabledNodeClustersResponse + 15, // 33: pb.NodeClusterService.listEnabledNodeClusters:output_type -> pb.ListEnabledNodeClustersResponse + 17, // 34: pb.NodeClusterService.findNodeClusterHealthCheckConfig:output_type -> pb.FindNodeClusterHealthCheckConfigResponse + 34, // 35: pb.NodeClusterService.updateNodeClusterHealthCheck:output_type -> pb.RPCUpdateSuccess + 20, // 36: pb.NodeClusterService.executeNodeClusterHealthCheck:output_type -> pb.ExecuteNodeClusterHealthCheckResponse + 22, // 37: pb.NodeClusterService.countAllEnabledNodeClustersWithGrantId:output_type -> pb.CountAllEnabledNodeClustersWithGrantIdResponse + 24, // 38: pb.NodeClusterService.findAllEnabledNodeClustersWithGrantId:output_type -> pb.FindAllEnabledNodeClustersWithGrantIdResponse + 26, // 39: pb.NodeClusterService.findEnabledNodeClusterDNS:output_type -> pb.FindEnabledNodeClusterDNSResponse + 28, // 40: pb.NodeClusterService.countAllEnabledNodeClustersWithDNSProviderId:output_type -> pb.CountAllEnabledNodeClustersWithDNSProviderIdResponse + 25, // [25:41] is the sub-list for method output_type + 9, // [9:25] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_service_node_cluster_proto_init() } @@ -1673,6 +1931,7 @@ func file_service_node_cluster_proto_init() { file_model_api_node_proto_init() file_model_node_proto_init() file_rpc_messages_proto_init() + file_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 { @@ -1975,6 +2234,54 @@ func file_service_node_cluster_proto_init() { } } file_service_node_cluster_proto_msgTypes[25].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[26].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[27].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[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledNodeClustersWithDNSProviderIdResponse); 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.(*ExecuteNodeClusterHealthCheckResponse_Result); i { case 0: return &v.state @@ -1993,7 +2300,7 @@ func file_service_node_cluster_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_node_cluster_proto_rawDesc, NumEnums: 0, - NumMessages: 26, + NumMessages: 30, NumExtensions: 0, NumServices: 1, }, @@ -2047,6 +2354,10 @@ type NodeClusterServiceClient interface { CountAllEnabledNodeClustersWithGrantId(ctx context.Context, in *CountAllEnabledNodeClustersWithGrantIdRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeClustersWithGrantIdResponse, error) // 查找使用某个认证的所有集群 FindAllEnabledNodeClustersWithGrantId(ctx context.Context, in *FindAllEnabledNodeClustersWithGrantIdRequest, opts ...grpc.CallOption) (*FindAllEnabledNodeClustersWithGrantIdResponse, error) + // 查找集群的DNS配置 + FindEnabledNodeClusterDNS(ctx context.Context, in *FindEnabledNodeClusterDNSRequest, opts ...grpc.CallOption) (*FindEnabledNodeClusterDNSResponse, error) + // 计算使用某个DNS服务商的集群数量 + CountAllEnabledNodeClustersWithDNSProviderId(ctx context.Context, in *CountAllEnabledNodeClustersWithDNSProviderIdRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeClustersWithDNSProviderIdResponse, error) } type nodeClusterServiceClient struct { @@ -2183,6 +2494,24 @@ func (c *nodeClusterServiceClient) FindAllEnabledNodeClustersWithGrantId(ctx con return out, nil } +func (c *nodeClusterServiceClient) FindEnabledNodeClusterDNS(ctx context.Context, in *FindEnabledNodeClusterDNSRequest, opts ...grpc.CallOption) (*FindEnabledNodeClusterDNSResponse, error) { + out := new(FindEnabledNodeClusterDNSResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/findEnabledNodeClusterDNS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClusterServiceClient) CountAllEnabledNodeClustersWithDNSProviderId(ctx context.Context, in *CountAllEnabledNodeClustersWithDNSProviderIdRequest, opts ...grpc.CallOption) (*CountAllEnabledNodeClustersWithDNSProviderIdResponse, error) { + out := new(CountAllEnabledNodeClustersWithDNSProviderIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/countAllEnabledNodeClustersWithDNSProviderId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // NodeClusterServiceServer is the server API for NodeClusterService service. type NodeClusterServiceServer interface { // 创建集群 @@ -2213,6 +2542,10 @@ type NodeClusterServiceServer interface { CountAllEnabledNodeClustersWithGrantId(context.Context, *CountAllEnabledNodeClustersWithGrantIdRequest) (*CountAllEnabledNodeClustersWithGrantIdResponse, error) // 查找使用某个认证的所有集群 FindAllEnabledNodeClustersWithGrantId(context.Context, *FindAllEnabledNodeClustersWithGrantIdRequest) (*FindAllEnabledNodeClustersWithGrantIdResponse, error) + // 查找集群的DNS配置 + FindEnabledNodeClusterDNS(context.Context, *FindEnabledNodeClusterDNSRequest) (*FindEnabledNodeClusterDNSResponse, error) + // 计算使用某个DNS服务商的集群数量 + CountAllEnabledNodeClustersWithDNSProviderId(context.Context, *CountAllEnabledNodeClustersWithDNSProviderIdRequest) (*CountAllEnabledNodeClustersWithDNSProviderIdResponse, error) } // UnimplementedNodeClusterServiceServer can be embedded to have forward compatible implementations. @@ -2261,6 +2594,12 @@ func (*UnimplementedNodeClusterServiceServer) CountAllEnabledNodeClustersWithGra func (*UnimplementedNodeClusterServiceServer) FindAllEnabledNodeClustersWithGrantId(context.Context, *FindAllEnabledNodeClustersWithGrantIdRequest) (*FindAllEnabledNodeClustersWithGrantIdResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledNodeClustersWithGrantId not implemented") } +func (*UnimplementedNodeClusterServiceServer) FindEnabledNodeClusterDNS(context.Context, *FindEnabledNodeClusterDNSRequest) (*FindEnabledNodeClusterDNSResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledNodeClusterDNS not implemented") +} +func (*UnimplementedNodeClusterServiceServer) CountAllEnabledNodeClustersWithDNSProviderId(context.Context, *CountAllEnabledNodeClustersWithDNSProviderIdRequest) (*CountAllEnabledNodeClustersWithDNSProviderIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledNodeClustersWithDNSProviderId not implemented") +} func RegisterNodeClusterServiceServer(s *grpc.Server, srv NodeClusterServiceServer) { s.RegisterService(&_NodeClusterService_serviceDesc, srv) @@ -2518,6 +2857,42 @@ func _NodeClusterService_FindAllEnabledNodeClustersWithGrantId_Handler(srv inter return interceptor(ctx, in, info, handler) } +func _NodeClusterService_FindEnabledNodeClusterDNS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledNodeClusterDNSRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).FindEnabledNodeClusterDNS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/FindEnabledNodeClusterDNS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).FindEnabledNodeClusterDNS(ctx, req.(*FindEnabledNodeClusterDNSRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeClusterService_CountAllEnabledNodeClustersWithDNSProviderId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountAllEnabledNodeClustersWithDNSProviderIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).CountAllEnabledNodeClustersWithDNSProviderId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/CountAllEnabledNodeClustersWithDNSProviderId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).CountAllEnabledNodeClustersWithDNSProviderId(ctx, req.(*CountAllEnabledNodeClustersWithDNSProviderIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _NodeClusterService_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.NodeClusterService", HandlerType: (*NodeClusterServiceServer)(nil), @@ -2578,6 +2953,14 @@ var _NodeClusterService_serviceDesc = grpc.ServiceDesc{ MethodName: "findAllEnabledNodeClustersWithGrantId", Handler: _NodeClusterService_FindAllEnabledNodeClustersWithGrantId_Handler, }, + { + MethodName: "findEnabledNodeClusterDNS", + Handler: _NodeClusterService_FindEnabledNodeClusterDNS_Handler, + }, + { + MethodName: "countAllEnabledNodeClustersWithDNSProviderId", + Handler: _NodeClusterService_CountAllEnabledNodeClustersWithDNSProviderId_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "service_node_cluster.proto", diff --git a/pkg/rpc/protos/model_dns_provider.proto b/pkg/rpc/protos/model_dns_provider.proto new file mode 100644 index 0000000..c996767 --- /dev/null +++ b/pkg/rpc/protos/model_dns_provider.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message DNSProvider { + int64 id = 1; + string name = 2; + string type = 3; + string typeName = 4; + bytes apiParamsJSON = 5; + bytes routesJSON = 6; + int64 dataUpdatedAt = 7; +} \ No newline at end of file diff --git a/pkg/rpc/protos/model_server.proto b/pkg/rpc/protos/model_server.proto index 20c42ac..52f35d9 100644 --- a/pkg/rpc/protos/model_server.proto +++ b/pkg/rpc/protos/model_server.proto @@ -15,6 +15,7 @@ message Server { bytes includeNodes = 5; bytes excludeNodes = 6; int64 createdAt = 7; + string dnsName = 19; // 配置相关 bytes config = 17; diff --git a/pkg/rpc/protos/service_dns_provider.proto b/pkg/rpc/protos/service_dns_provider.proto new file mode 100644 index 0000000..aa37eeb --- /dev/null +++ b/pkg/rpc/protos/service_dns_provider.proto @@ -0,0 +1,98 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "rpc_messages.proto"; +import "model_dns_provider.proto"; + +// DNS服务商相关服务 +service DNSProviderService { + // 创建服务商 + rpc createDNSProvider (CreateDNSProviderRequest) returns (CreateDNSProviderResponse); + + // 修改服务商 + rpc updateDNSProvider (UpdateDNSProviderRequest) returns (RPCUpdateSuccess); + + // 计算服务商数量 + rpc countAllEnabledDNSProviders (CountAllEnabledDNSProvidersRequest) returns (CountAllEnabledDNSProvidersResponse); + + // 列出单页服务商信息 + rpc listEnabledDNSProviders (ListEnabledDNSProvidersRequest) returns (ListEnabledDNSProvidersResponse); + + // 删除服务商 + rpc deleteDNSProvider (DeleteDNSProviderRequest) returns (RPCDeleteSuccess); + + // 查找单个服务商 + rpc findEnabledDNSProvider (FindEnabledDNSProviderRequest) returns (FindEnabledDNSProviderResponse); + + // 取得所有服务商类型 + rpc findAllDNSProviderTypes (FindAllDNSProviderTypesRequest) returns (FindAllDNSProviderTypesResponse); +} + +// 创建服务商 +message CreateDNSProviderRequest { + string name = 1; + string type = 2; + bytes apiParamsJSON = 3; + bytes routesJSON = 4; +} + +message CreateDNSProviderResponse { + int64 dnsProviderId = 1; +} + +// 修改服务商 +message UpdateDNSProviderRequest { + int64 dnsProviderId = 1; + string name = 2; + bytes apiParamsJSON = 3; + bytes routesJSON = 4; +} + +// 计算服务商数量 +message CountAllEnabledDNSProvidersRequest { + +} + +message CountAllEnabledDNSProvidersResponse { + int64 count = 1; +} + +// 列出单页的服务商信息 +message ListEnabledDNSProvidersRequest { + int64 offset = 1; + int64 size = 2; +} + +message ListEnabledDNSProvidersResponse { + repeated DNSProvider dnsProviders = 1; +} + +// 删除服务商 +message DeleteDNSProviderRequest { + int64 dnsProviderId = 1; +} + +// 查找单个服务商 +message FindEnabledDNSProviderRequest { + int64 dnsProviderId = 1; +} + +message FindEnabledDNSProviderResponse { + DNSProvider dnsProvider = 1; +} + +// 取得所有服务商类型 +message FindAllDNSProviderTypesRequest { + +} + +message FindAllDNSProviderTypesResponse { + repeated DNSProviderType providerTypes = 1; +} + +message DNSProviderType { + string name = 1; + string code = 2; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_node_cluster.proto b/pkg/rpc/protos/service_node_cluster.proto index 00ec6c8..50cbf2e 100644 --- a/pkg/rpc/protos/service_node_cluster.proto +++ b/pkg/rpc/protos/service_node_cluster.proto @@ -7,6 +7,7 @@ import "model_node_cluster.proto"; import "model_api_node.proto"; import "model_node.proto"; import "rpc_messages.proto"; +import "model_dns_provider.proto"; service NodeClusterService { // 创建集群 @@ -50,6 +51,12 @@ service NodeClusterService { // 查找使用某个认证的所有集群 rpc findAllEnabledNodeClustersWithGrantId (FindAllEnabledNodeClustersWithGrantIdRequest) returns (FindAllEnabledNodeClustersWithGrantIdResponse); + + // 查找集群的DNS配置 + rpc findEnabledNodeClusterDNS (FindEnabledNodeClusterDNSRequest) returns (FindEnabledNodeClusterDNSResponse); + + // 计算使用某个DNS服务商的集群数量 + rpc countAllEnabledNodeClustersWithDNSProviderId (CountAllEnabledNodeClustersWithDNSProviderIdRequest) returns (CountAllEnabledNodeClustersWithDNSProviderIdResponse); } // 获取所有集群的信息 @@ -180,4 +187,24 @@ message FindAllEnabledNodeClustersWithGrantIdRequest { message FindAllEnabledNodeClustersWithGrantIdResponse { repeated NodeCluster clusters = 1; +} + +// 查找集群的DNS配置 +message FindEnabledNodeClusterDNSRequest { + int64 nodeClusterId = 1; +} + +message FindEnabledNodeClusterDNSResponse { + string name = 1; + string domain = 2; + DNSProvider provider = 3; +} + +// 计算使用某个DNS服务商的集群数量 +message CountAllEnabledNodeClustersWithDNSProviderIdRequest { + int64 dnsProviderId = 1; +} + +message CountAllEnabledNodeClustersWithDNSProviderIdResponse { + int64 count = 1; } \ No newline at end of file diff --git a/pkg/serverconfigs/ipconfigs/action_http.go b/pkg/serverconfigs/ipconfigs/action_http.go new file mode 100644 index 0000000..27748c4 --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/action_http.go @@ -0,0 +1,101 @@ +package ipconfigs + +import ( + "encoding/json" + "errors" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "io" + "net/http" + "net/url" + "strings" +) + +// TODO 支持自定义Header +type HTTPAction struct { + URL string `yaml:"url" json:"url"` // URL + Method string `yaml:"method" json:"method"` // 请求方法 + ParamName string `yaml:"paramName" json:"paramsName"` // 参数名 + Params map[string]string `yaml:"params" json:"params"` // 附加参数,在请求的时候一起提交 + Timeout *shared.TimeDuration `yaml:"timeout" json:"timeout"` // 超时时间 + Tries int `yaml:"tries" json:"tries"` // 失败尝试次数 +} + +func (this *HTTPAction) Node() string { + return "api" +} + +func (this *HTTPAction) Run(itemConfig *IPItemConfig) error { + if itemConfig == nil { + return errors.New("invalid ip item") + } + itemJSON, err := json.Marshal(itemConfig) + if err != nil { + return err + } + + method := this.Method + if len(method) == 0 { + method = http.MethodGet + } + + var body io.Reader = nil + defaultParamName := "ip" + apiURL := this.URL + + v := url.Values{} + for paramName, paramValue := range this.Params { + v[paramName] = []string{paramValue} + } + if len(this.ParamName) == 0 { + v[defaultParamName] = []string{string(itemJSON)} + } else { + v[this.ParamName] = []string{string(itemJSON)} + } + + if method != http.MethodGet { + body = strings.NewReader(v.Encode()) + } else { + if strings.Contains(apiURL, "?") { + apiURL += "&" + } else { + apiURL += "?" + } + apiURL += v.Encode() + } + + req, err := http.NewRequest(method, apiURL, body) + if err != nil { + return err + } + + if method == http.MethodPost { + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + } + + client := &http.Client{} + if this.Timeout != nil { + timeout := this.Timeout.Duration() + if timeout > 0 { + client.Timeout = timeout + } + } + defer func() { + client.CloseIdleConnections() + }() + + tries := this.Tries + if tries <= 0 { + tries = 1 + } + for i := 0; i < tries; i++ { + resp, err := client.Do(req) + if err == nil { + _ = resp.Body.Close() + return nil + } else if i == tries-1 { + return err + } + } + + return nil +} diff --git a/pkg/serverconfigs/ipconfigs/action_http_test.go b/pkg/serverconfigs/ipconfigs/action_http_test.go new file mode 100644 index 0000000..2a7b348 --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/action_http_test.go @@ -0,0 +1,24 @@ +package ipconfigs + +import ( + "net/http" + "testing" + "time" +) + +func TestHTTPAction_Run(t *testing.T) { + action := &HTTPAction{ + URL: "http://127.0.0.1:1234/get?hello=world", + Method: http.MethodGet, + Params: map[string]string{"a": "b"}, + ParamName: "IP", + } + err := action.Run(&IPItemConfig{ + IPFrom: "192.168.1.100", + ExpiredAt: time.Now().Unix() + 3600, + }) + if err != nil { + t.Fatal(err) + } + t.Log("ok") +} diff --git a/pkg/serverconfigs/ipconfigs/action_interface.go b/pkg/serverconfigs/ipconfigs/action_interface.go new file mode 100644 index 0000000..edfb4c6 --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/action_interface.go @@ -0,0 +1,9 @@ +package ipconfigs + +type ActionInterface interface { + // 运行节点 + Node() string + + // 执行对IP信息的处理 + Run(itemConfig *IPItemConfig) error +} diff --git a/pkg/serverconfigs/ipconfigs/action_ipset.go b/pkg/serverconfigs/ipconfigs/action_ipset.go new file mode 100644 index 0000000..77915a9 --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/action_ipset.go @@ -0,0 +1,60 @@ +package ipconfigs + +import ( + "os/exec" + "strconv" + "time" +) + +type IPSetAction struct { + Exe string `yaml:"exe" json:"exe"` // 可执行文件位置 + SetName string `yaml:"setName" json:"setName"` // 集合名称,多个集合使用同一个名称 +} + +func (this *IPSetAction) Node() string { + return "node" +} + +func (this *IPSetAction) Run(itemConfig *IPItemConfig) error { + exe := this.Exe + if len(exe) == 0 { + path, err := exec.LookPath("ipset") + if err != nil { + return err + } + exe = path + } + + var timeout int64 = 0 + if itemConfig.ExpiredAt > 0 { + timeout = itemConfig.ExpiredAt - time.Now().Unix() + if timeout <= 0 { + return nil + } + } + + ip := itemConfig.IPFrom + if len(itemConfig.IPTo) > 0 { + ip += "-" + itemConfig.IPTo + } + + switch itemConfig.Action { + case IPItemActionAdd: + cmd := exec.Command(exe, "add", this.SetName, ip, "timeout", strconv.FormatInt(timeout, 10)) + _ = cmd.Run() + case IPItemActionUpdate: + { + cmd := exec.Command(exe, "del", this.SetName, ip, "timeout", strconv.FormatInt(timeout, 10)) + _ = cmd.Run() + } + { + cmd := exec.Command(exe, "add", this.SetName, ip, "timeout", strconv.FormatInt(timeout, 10)) + _ = cmd.Run() + } + case IPItemActionDelete: + cmd := exec.Command(exe, "del", this.SetName, ip, "timeout", strconv.FormatInt(timeout, 10)) + _ = cmd.Run() + } + + return nil +} diff --git a/pkg/serverconfigs/ipconfigs/action_ipset_test.go b/pkg/serverconfigs/ipconfigs/action_ipset_test.go new file mode 100644 index 0000000..792892c --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/action_ipset_test.go @@ -0,0 +1,12 @@ +package ipconfigs + +import "testing" + +func TestIPSetAction_Run(t *testing.T) { + action := &IPSetAction{} + err := action.Run(&IPItemConfig{}) + if err != nil { + t.Fatal(err) + } + t.Log("ok") +} diff --git a/pkg/serverconfigs/ipconfigs/actions.go b/pkg/serverconfigs/ipconfigs/actions.go new file mode 100644 index 0000000..3513933 --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/actions.go @@ -0,0 +1,9 @@ +package ipconfigs + +type IPListAction = string + +const ( + IPListActionHTTP IPListAction = "http" // HTTP + IPListActionIPSet IPListAction = "ipset" // ipset +) + diff --git a/pkg/serverconfigs/ipconfigs/ip_item_config.go b/pkg/serverconfigs/ipconfigs/ip_item_config.go new file mode 100644 index 0000000..cd8b0bd --- /dev/null +++ b/pkg/serverconfigs/ipconfigs/ip_item_config.go @@ -0,0 +1,17 @@ +package ipconfigs + +type IPItemAction = string + +const ( + IPItemActionAdd IPItemAction = "add" + IPItemActionUpdate IPItemAction = "update" + IPItemActionDelete IPItemAction = "delete" +) + +type IPItemConfig struct { + Action IPItemAction `yaml:"action" json:"action"` // 对当前Item的操作 + Id int64 `yaml:"id" json:"id"` + IPFrom string `yaml:"ipFrom" json:"ipFrom"` + IPTo string `yaml:"ipTo" json:"ipTo"` + ExpiredAt int64 `yaml:"expiredAt" json:"expiredAt"` +}