From 9acb70206f5cd93a1c5093fc75da1b1916e05f2f Mon Sep 17 00:00:00 2001 From: Denys Vitali Date: Wed, 9 Feb 2022 23:58:29 +0100 Subject: [PATCH] feat: add protobuf generated files If you want to use the UI module in another project, Go will not allow you to import the package because the ui protobuf package is missing. We have to commit it so that we can allow this project to be used as a library. --- daemon/ui/protocol/ui.pb.go | 1456 ++++++++++++++++++++++++++++++ daemon/ui/protocol/ui_grpc.pb.go | 246 +++++ 2 files changed, 1702 insertions(+) create mode 100644 daemon/ui/protocol/ui.pb.go create mode 100644 daemon/ui/protocol/ui_grpc.pb.go diff --git a/daemon/ui/protocol/ui.pb.go b/daemon/ui/protocol/ui.pb.go new file mode 100644 index 00000000..7c92179e --- /dev/null +++ b/daemon/ui/protocol/ui.pb.go @@ -0,0 +1,1456 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.19.4 +// source: ui.proto + +package protocol + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Action int32 + +const ( + Action_NONE Action = 0 + Action_LOAD_FIREWALL Action = 1 + Action_UNLOAD_FIREWALL Action = 2 + Action_CHANGE_CONFIG Action = 3 + Action_ENABLE_RULE Action = 4 + Action_DISABLE_RULE Action = 5 + Action_DELETE_RULE Action = 6 + Action_CHANGE_RULE Action = 7 + Action_LOG_LEVEL Action = 8 + Action_STOP Action = 9 + Action_MONITOR_PROCESS Action = 10 + Action_STOP_MONITOR_PROCESS Action = 11 +) + +// Enum value maps for Action. +var ( + Action_name = map[int32]string{ + 0: "NONE", + 1: "LOAD_FIREWALL", + 2: "UNLOAD_FIREWALL", + 3: "CHANGE_CONFIG", + 4: "ENABLE_RULE", + 5: "DISABLE_RULE", + 6: "DELETE_RULE", + 7: "CHANGE_RULE", + 8: "LOG_LEVEL", + 9: "STOP", + 10: "MONITOR_PROCESS", + 11: "STOP_MONITOR_PROCESS", + } + Action_value = map[string]int32{ + "NONE": 0, + "LOAD_FIREWALL": 1, + "UNLOAD_FIREWALL": 2, + "CHANGE_CONFIG": 3, + "ENABLE_RULE": 4, + "DISABLE_RULE": 5, + "DELETE_RULE": 6, + "CHANGE_RULE": 7, + "LOG_LEVEL": 8, + "STOP": 9, + "MONITOR_PROCESS": 10, + "STOP_MONITOR_PROCESS": 11, + } +) + +func (x Action) Enum() *Action { + p := new(Action) + *p = x + return p +} + +func (x Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Action) Descriptor() protoreflect.EnumDescriptor { + return file_ui_proto_enumTypes[0].Descriptor() +} + +func (Action) Type() protoreflect.EnumType { + return &file_ui_proto_enumTypes[0] +} + +func (x Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Action.Descriptor instead. +func (Action) EnumDescriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{0} +} + +type NotificationReplyCode int32 + +const ( + NotificationReplyCode_OK NotificationReplyCode = 0 + NotificationReplyCode_ERROR NotificationReplyCode = 1 +) + +// Enum value maps for NotificationReplyCode. +var ( + NotificationReplyCode_name = map[int32]string{ + 0: "OK", + 1: "ERROR", + } + NotificationReplyCode_value = map[string]int32{ + "OK": 0, + "ERROR": 1, + } +) + +func (x NotificationReplyCode) Enum() *NotificationReplyCode { + p := new(NotificationReplyCode) + *p = x + return p +} + +func (x NotificationReplyCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NotificationReplyCode) Descriptor() protoreflect.EnumDescriptor { + return file_ui_proto_enumTypes[1].Descriptor() +} + +func (NotificationReplyCode) Type() protoreflect.EnumType { + return &file_ui_proto_enumTypes[1] +} + +func (x NotificationReplyCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NotificationReplyCode.Descriptor instead. +func (NotificationReplyCode) EnumDescriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{1} +} + +type Event struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Time string `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` + Connection *Connection `protobuf:"bytes,2,opt,name=connection,proto3" json:"connection,omitempty"` + Rule *Rule `protobuf:"bytes,3,opt,name=rule,proto3" json:"rule,omitempty"` + Unixnano int64 `protobuf:"varint,4,opt,name=unixnano,proto3" json:"unixnano,omitempty"` +} + +func (x *Event) Reset() { + *x = Event{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Event) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Event) ProtoMessage() {} + +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{0} +} + +func (x *Event) GetTime() string { + if x != nil { + return x.Time + } + return "" +} + +func (x *Event) GetConnection() *Connection { + if x != nil { + return x.Connection + } + return nil +} + +func (x *Event) GetRule() *Rule { + if x != nil { + return x.Rule + } + return nil +} + +func (x *Event) GetUnixnano() int64 { + if x != nil { + return x.Unixnano + } + return 0 +} + +type Statistics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DaemonVersion string `protobuf:"bytes,1,opt,name=daemon_version,json=daemonVersion,proto3" json:"daemon_version,omitempty"` + Rules uint64 `protobuf:"varint,2,opt,name=rules,proto3" json:"rules,omitempty"` + Uptime uint64 `protobuf:"varint,3,opt,name=uptime,proto3" json:"uptime,omitempty"` + DnsResponses uint64 `protobuf:"varint,4,opt,name=dns_responses,json=dnsResponses,proto3" json:"dns_responses,omitempty"` + Connections uint64 `protobuf:"varint,5,opt,name=connections,proto3" json:"connections,omitempty"` + Ignored uint64 `protobuf:"varint,6,opt,name=ignored,proto3" json:"ignored,omitempty"` + Accepted uint64 `protobuf:"varint,7,opt,name=accepted,proto3" json:"accepted,omitempty"` + Dropped uint64 `protobuf:"varint,8,opt,name=dropped,proto3" json:"dropped,omitempty"` + RuleHits uint64 `protobuf:"varint,9,opt,name=rule_hits,json=ruleHits,proto3" json:"rule_hits,omitempty"` + RuleMisses uint64 `protobuf:"varint,10,opt,name=rule_misses,json=ruleMisses,proto3" json:"rule_misses,omitempty"` + ByProto map[string]uint64 `protobuf:"bytes,11,rep,name=by_proto,json=byProto,proto3" json:"by_proto,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ByAddress map[string]uint64 `protobuf:"bytes,12,rep,name=by_address,json=byAddress,proto3" json:"by_address,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ByHost map[string]uint64 `protobuf:"bytes,13,rep,name=by_host,json=byHost,proto3" json:"by_host,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ByPort map[string]uint64 `protobuf:"bytes,14,rep,name=by_port,json=byPort,proto3" json:"by_port,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ByUid map[string]uint64 `protobuf:"bytes,15,rep,name=by_uid,json=byUid,proto3" json:"by_uid,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ByExecutable map[string]uint64 `protobuf:"bytes,16,rep,name=by_executable,json=byExecutable,proto3" json:"by_executable,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Events []*Event `protobuf:"bytes,17,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *Statistics) Reset() { + *x = Statistics{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Statistics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Statistics) ProtoMessage() {} + +func (x *Statistics) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 Statistics.ProtoReflect.Descriptor instead. +func (*Statistics) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{1} +} + +func (x *Statistics) GetDaemonVersion() string { + if x != nil { + return x.DaemonVersion + } + return "" +} + +func (x *Statistics) GetRules() uint64 { + if x != nil { + return x.Rules + } + return 0 +} + +func (x *Statistics) GetUptime() uint64 { + if x != nil { + return x.Uptime + } + return 0 +} + +func (x *Statistics) GetDnsResponses() uint64 { + if x != nil { + return x.DnsResponses + } + return 0 +} + +func (x *Statistics) GetConnections() uint64 { + if x != nil { + return x.Connections + } + return 0 +} + +func (x *Statistics) GetIgnored() uint64 { + if x != nil { + return x.Ignored + } + return 0 +} + +func (x *Statistics) GetAccepted() uint64 { + if x != nil { + return x.Accepted + } + return 0 +} + +func (x *Statistics) GetDropped() uint64 { + if x != nil { + return x.Dropped + } + return 0 +} + +func (x *Statistics) GetRuleHits() uint64 { + if x != nil { + return x.RuleHits + } + return 0 +} + +func (x *Statistics) GetRuleMisses() uint64 { + if x != nil { + return x.RuleMisses + } + return 0 +} + +func (x *Statistics) GetByProto() map[string]uint64 { + if x != nil { + return x.ByProto + } + return nil +} + +func (x *Statistics) GetByAddress() map[string]uint64 { + if x != nil { + return x.ByAddress + } + return nil +} + +func (x *Statistics) GetByHost() map[string]uint64 { + if x != nil { + return x.ByHost + } + return nil +} + +func (x *Statistics) GetByPort() map[string]uint64 { + if x != nil { + return x.ByPort + } + return nil +} + +func (x *Statistics) GetByUid() map[string]uint64 { + if x != nil { + return x.ByUid + } + return nil +} + +func (x *Statistics) GetByExecutable() map[string]uint64 { + if x != nil { + return x.ByExecutable + } + return nil +} + +func (x *Statistics) GetEvents() []*Event { + if x != nil { + return x.Events + } + return nil +} + +type PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Stats *Statistics `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"` +} + +func (x *PingRequest) Reset() { + *x = PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingRequest) ProtoMessage() {} + +func (x *PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 PingRequest.ProtoReflect.Descriptor instead. +func (*PingRequest) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{2} +} + +func (x *PingRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *PingRequest) GetStats() *Statistics { + if x != nil { + return x.Stats + } + return nil +} + +type PingReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *PingReply) Reset() { + *x = PingReply{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingReply) ProtoMessage() {} + +func (x *PingReply) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 PingReply.ProtoReflect.Descriptor instead. +func (*PingReply) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{3} +} + +func (x *PingReply) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type Connection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Protocol string `protobuf:"bytes,1,opt,name=protocol,proto3" json:"protocol,omitempty"` + SrcIp string `protobuf:"bytes,2,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"` + SrcPort uint32 `protobuf:"varint,3,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` + DstIp string `protobuf:"bytes,4,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + DstHost string `protobuf:"bytes,5,opt,name=dst_host,json=dstHost,proto3" json:"dst_host,omitempty"` + DstPort uint32 `protobuf:"varint,6,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` + UserId uint32 `protobuf:"varint,7,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProcessId uint32 `protobuf:"varint,8,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"` + ProcessPath string `protobuf:"bytes,9,opt,name=process_path,json=processPath,proto3" json:"process_path,omitempty"` + ProcessCwd string `protobuf:"bytes,10,opt,name=process_cwd,json=processCwd,proto3" json:"process_cwd,omitempty"` + ProcessArgs []string `protobuf:"bytes,11,rep,name=process_args,json=processArgs,proto3" json:"process_args,omitempty"` + ProcessEnv map[string]string `protobuf:"bytes,12,rep,name=process_env,json=processEnv,proto3" json:"process_env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Connection) Reset() { + *x = Connection{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Connection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Connection) ProtoMessage() {} + +func (x *Connection) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 Connection.ProtoReflect.Descriptor instead. +func (*Connection) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{4} +} + +func (x *Connection) GetProtocol() string { + if x != nil { + return x.Protocol + } + return "" +} + +func (x *Connection) GetSrcIp() string { + if x != nil { + return x.SrcIp + } + return "" +} + +func (x *Connection) GetSrcPort() uint32 { + if x != nil { + return x.SrcPort + } + return 0 +} + +func (x *Connection) GetDstIp() string { + if x != nil { + return x.DstIp + } + return "" +} + +func (x *Connection) GetDstHost() string { + if x != nil { + return x.DstHost + } + return "" +} + +func (x *Connection) GetDstPort() uint32 { + if x != nil { + return x.DstPort + } + return 0 +} + +func (x *Connection) GetUserId() uint32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *Connection) GetProcessId() uint32 { + if x != nil { + return x.ProcessId + } + return 0 +} + +func (x *Connection) GetProcessPath() string { + if x != nil { + return x.ProcessPath + } + return "" +} + +func (x *Connection) GetProcessCwd() string { + if x != nil { + return x.ProcessCwd + } + return "" +} + +func (x *Connection) GetProcessArgs() []string { + if x != nil { + return x.ProcessArgs + } + return nil +} + +func (x *Connection) GetProcessEnv() map[string]string { + if x != nil { + return x.ProcessEnv + } + return nil +} + +type Operator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Operand string `protobuf:"bytes,2,opt,name=operand,proto3" json:"operand,omitempty"` + Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Sensitive bool `protobuf:"varint,4,opt,name=sensitive,proto3" json:"sensitive,omitempty"` +} + +func (x *Operator) Reset() { + *x = Operator{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Operator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Operator) ProtoMessage() {} + +func (x *Operator) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 Operator.ProtoReflect.Descriptor instead. +func (*Operator) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{5} +} + +func (x *Operator) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Operator) GetOperand() string { + if x != nil { + return x.Operand + } + return "" +} + +func (x *Operator) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +func (x *Operator) GetSensitive() bool { + if x != nil { + return x.Sensitive + } + return false +} + +type Rule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` + Precedence bool `protobuf:"varint,3,opt,name=precedence,proto3" json:"precedence,omitempty"` + Action string `protobuf:"bytes,4,opt,name=action,proto3" json:"action,omitempty"` + Duration string `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` + Operator *Operator `protobuf:"bytes,6,opt,name=operator,proto3" json:"operator,omitempty"` +} + +func (x *Rule) Reset() { + *x = Rule{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Rule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Rule) ProtoMessage() {} + +func (x *Rule) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 Rule.ProtoReflect.Descriptor instead. +func (*Rule) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{6} +} + +func (x *Rule) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Rule) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *Rule) GetPrecedence() bool { + if x != nil { + return x.Precedence + } + return false +} + +func (x *Rule) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *Rule) GetDuration() string { + if x != nil { + return x.Duration + } + return "" +} + +func (x *Rule) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +// client configuration sent on Subscribe() +type ClientConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + IsFirewallRunning bool `protobuf:"varint,4,opt,name=isFirewallRunning,proto3" json:"isFirewallRunning,omitempty"` + // daemon configuration as json string + Config string `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"` + LogLevel uint32 `protobuf:"varint,6,opt,name=logLevel,proto3" json:"logLevel,omitempty"` + Rules []*Rule `protobuf:"bytes,7,rep,name=rules,proto3" json:"rules,omitempty"` +} + +func (x *ClientConfig) Reset() { + *x = ClientConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientConfig) ProtoMessage() {} + +func (x *ClientConfig) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 ClientConfig.ProtoReflect.Descriptor instead. +func (*ClientConfig) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{7} +} + +func (x *ClientConfig) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ClientConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientConfig) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *ClientConfig) GetIsFirewallRunning() bool { + if x != nil { + return x.IsFirewallRunning + } + return false +} + +func (x *ClientConfig) GetConfig() string { + if x != nil { + return x.Config + } + return "" +} + +func (x *ClientConfig) GetLogLevel() uint32 { + if x != nil { + return x.LogLevel + } + return 0 +} + +func (x *ClientConfig) GetRules() []*Rule { + if x != nil { + return x.Rules + } + return nil +} + +// notification sent to the clients (daemons) +type Notification struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ClientName string `protobuf:"bytes,2,opt,name=clientName,proto3" json:"clientName,omitempty"` + ServerName string `protobuf:"bytes,3,opt,name=serverName,proto3" json:"serverName,omitempty"` + // CHANGE_CONFIG: 2, data: {"default_timeout": 1, ...} + Type Action `protobuf:"varint,4,opt,name=type,proto3,enum=protocol.Action" json:"type,omitempty"` + Data string `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` + Rules []*Rule `protobuf:"bytes,6,rep,name=rules,proto3" json:"rules,omitempty"` +} + +func (x *Notification) Reset() { + *x = Notification{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Notification) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Notification) ProtoMessage() {} + +func (x *Notification) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 Notification.ProtoReflect.Descriptor instead. +func (*Notification) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{8} +} + +func (x *Notification) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Notification) GetClientName() string { + if x != nil { + return x.ClientName + } + return "" +} + +func (x *Notification) GetServerName() string { + if x != nil { + return x.ServerName + } + return "" +} + +func (x *Notification) GetType() Action { + if x != nil { + return x.Type + } + return Action_NONE +} + +func (x *Notification) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +func (x *Notification) GetRules() []*Rule { + if x != nil { + return x.Rules + } + return nil +} + +// notification reply sent to the server (GUI) +type NotificationReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Code NotificationReplyCode `protobuf:"varint,2,opt,name=code,proto3,enum=protocol.NotificationReplyCode" json:"code,omitempty"` + Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *NotificationReply) Reset() { + *x = NotificationReply{} + if protoimpl.UnsafeEnabled { + mi := &file_ui_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotificationReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotificationReply) ProtoMessage() {} + +func (x *NotificationReply) ProtoReflect() protoreflect.Message { + mi := &file_ui_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 NotificationReply.ProtoReflect.Descriptor instead. +func (*NotificationReply) Descriptor() ([]byte, []int) { + return file_ui_proto_rawDescGZIP(), []int{9} +} + +func (x *NotificationReply) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NotificationReply) GetCode() NotificationReplyCode { + if x != nil { + return x.Code + } + return NotificationReplyCode_OK +} + +func (x *NotificationReply) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +var File_ui_proto protoreflect.FileDescriptor + +var file_ui_proto_rawDesc = []byte{ + 0x0a, 0x08, 0x75, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x91, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x6e, 0x69, 0x78, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x75, 0x6e, 0x69, 0x78, 0x6e, 0x61, 0x6e, 0x6f, 0x22, 0xc7, 0x08, 0x0a, 0x0a, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x64, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x72, 0x6f, + 0x70, 0x70, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x64, 0x72, 0x6f, 0x70, + 0x70, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x48, 0x69, 0x74, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x65, + 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x62, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x42, 0x0a, 0x0a, 0x62, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x62, 0x79, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x62, 0x79, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x79, 0x48, 0x6f, 0x73, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x62, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x39, + 0x0a, 0x07, 0x62, 0x79, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x62, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x62, 0x79, 0x5f, + 0x75, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, + 0x42, 0x79, 0x55, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x62, 0x79, 0x55, 0x69, + 0x64, 0x12, 0x4b, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x42, + 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x62, 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, + 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x42, 0x79, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x42, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, + 0x42, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x42, 0x79, 0x55, 0x69, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x42, 0x79, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x49, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x1b, 0x0a, + 0x09, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0xcc, 0x03, 0x0a, 0x0a, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x70, 0x12, 0x19, 0x0a, 0x08, + 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x19, + 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x64, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x77, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x77, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x41, + 0x72, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, + 0x6e, 0x76, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x6e, 0x76, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x08, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2e, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 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, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x46, 0x69, + 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x6c, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0xda, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x49, 0x52, 0x45, 0x57, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x13, + 0x0a, 0x0f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x49, 0x52, 0x45, 0x57, 0x41, 0x4c, + 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x4f, + 0x4e, 0x46, 0x49, 0x47, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x4c, + 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, + 0x4f, 0x50, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, + 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x10, 0x0a, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x4f, + 0x50, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, + 0x53, 0x10, 0x0b, 0x2a, 0x2a, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x32, + 0xf8, 0x01, 0x0a, 0x02, 0x55, 0x49, 0x12, 0x34, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x15, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x07, + 0x41, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x0e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x00, 0x12, + 0x3d, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x16, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x4a, + 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x1a, 0x16, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x76, 0x69, 0x6c, 0x73, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x6e, 0x69, 0x74, 0x63, 0x68, 0x2f, 0x64, + 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2f, 0x75, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ui_proto_rawDescOnce sync.Once + file_ui_proto_rawDescData = file_ui_proto_rawDesc +) + +func file_ui_proto_rawDescGZIP() []byte { + file_ui_proto_rawDescOnce.Do(func() { + file_ui_proto_rawDescData = protoimpl.X.CompressGZIP(file_ui_proto_rawDescData) + }) + return file_ui_proto_rawDescData +} + +var file_ui_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_ui_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_ui_proto_goTypes = []interface{}{ + (Action)(0), // 0: protocol.Action + (NotificationReplyCode)(0), // 1: protocol.NotificationReplyCode + (*Event)(nil), // 2: protocol.Event + (*Statistics)(nil), // 3: protocol.Statistics + (*PingRequest)(nil), // 4: protocol.PingRequest + (*PingReply)(nil), // 5: protocol.PingReply + (*Connection)(nil), // 6: protocol.Connection + (*Operator)(nil), // 7: protocol.Operator + (*Rule)(nil), // 8: protocol.Rule + (*ClientConfig)(nil), // 9: protocol.ClientConfig + (*Notification)(nil), // 10: protocol.Notification + (*NotificationReply)(nil), // 11: protocol.NotificationReply + nil, // 12: protocol.Statistics.ByProtoEntry + nil, // 13: protocol.Statistics.ByAddressEntry + nil, // 14: protocol.Statistics.ByHostEntry + nil, // 15: protocol.Statistics.ByPortEntry + nil, // 16: protocol.Statistics.ByUidEntry + nil, // 17: protocol.Statistics.ByExecutableEntry + nil, // 18: protocol.Connection.ProcessEnvEntry +} +var file_ui_proto_depIdxs = []int32{ + 6, // 0: protocol.Event.connection:type_name -> protocol.Connection + 8, // 1: protocol.Event.rule:type_name -> protocol.Rule + 12, // 2: protocol.Statistics.by_proto:type_name -> protocol.Statistics.ByProtoEntry + 13, // 3: protocol.Statistics.by_address:type_name -> protocol.Statistics.ByAddressEntry + 14, // 4: protocol.Statistics.by_host:type_name -> protocol.Statistics.ByHostEntry + 15, // 5: protocol.Statistics.by_port:type_name -> protocol.Statistics.ByPortEntry + 16, // 6: protocol.Statistics.by_uid:type_name -> protocol.Statistics.ByUidEntry + 17, // 7: protocol.Statistics.by_executable:type_name -> protocol.Statistics.ByExecutableEntry + 2, // 8: protocol.Statistics.events:type_name -> protocol.Event + 3, // 9: protocol.PingRequest.stats:type_name -> protocol.Statistics + 18, // 10: protocol.Connection.process_env:type_name -> protocol.Connection.ProcessEnvEntry + 7, // 11: protocol.Rule.operator:type_name -> protocol.Operator + 8, // 12: protocol.ClientConfig.rules:type_name -> protocol.Rule + 0, // 13: protocol.Notification.type:type_name -> protocol.Action + 8, // 14: protocol.Notification.rules:type_name -> protocol.Rule + 1, // 15: protocol.NotificationReply.code:type_name -> protocol.NotificationReplyCode + 4, // 16: protocol.UI.Ping:input_type -> protocol.PingRequest + 6, // 17: protocol.UI.AskRule:input_type -> protocol.Connection + 9, // 18: protocol.UI.Subscribe:input_type -> protocol.ClientConfig + 11, // 19: protocol.UI.Notifications:input_type -> protocol.NotificationReply + 5, // 20: protocol.UI.Ping:output_type -> protocol.PingReply + 8, // 21: protocol.UI.AskRule:output_type -> protocol.Rule + 9, // 22: protocol.UI.Subscribe:output_type -> protocol.ClientConfig + 10, // 23: protocol.UI.Notifications:output_type -> protocol.Notification + 20, // [20:24] is the sub-list for method output_type + 16, // [16:20] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name +} + +func init() { file_ui_proto_init() } +func file_ui_proto_init() { + if File_ui_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_ui_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Event); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Statistics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Connection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Operator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Rule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Notification); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ui_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationReply); 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_ui_proto_rawDesc, + NumEnums: 2, + NumMessages: 17, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_ui_proto_goTypes, + DependencyIndexes: file_ui_proto_depIdxs, + EnumInfos: file_ui_proto_enumTypes, + MessageInfos: file_ui_proto_msgTypes, + }.Build() + File_ui_proto = out.File + file_ui_proto_rawDesc = nil + file_ui_proto_goTypes = nil + file_ui_proto_depIdxs = nil +} diff --git a/daemon/ui/protocol/ui_grpc.pb.go b/daemon/ui/protocol/ui_grpc.pb.go new file mode 100644 index 00000000..a7fb58c8 --- /dev/null +++ b/daemon/ui/protocol/ui_grpc.pb.go @@ -0,0 +1,246 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: ui.proto + +package protocol + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// UIClient is the client API for UI service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type UIClient interface { + Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) + AskRule(ctx context.Context, in *Connection, opts ...grpc.CallOption) (*Rule, error) + Subscribe(ctx context.Context, in *ClientConfig, opts ...grpc.CallOption) (*ClientConfig, error) + Notifications(ctx context.Context, opts ...grpc.CallOption) (UI_NotificationsClient, error) +} + +type uIClient struct { + cc grpc.ClientConnInterface +} + +func NewUIClient(cc grpc.ClientConnInterface) UIClient { + return &uIClient{cc} +} + +func (c *uIClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) { + out := new(PingReply) + err := c.cc.Invoke(ctx, "/protocol.UI/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *uIClient) AskRule(ctx context.Context, in *Connection, opts ...grpc.CallOption) (*Rule, error) { + out := new(Rule) + err := c.cc.Invoke(ctx, "/protocol.UI/AskRule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *uIClient) Subscribe(ctx context.Context, in *ClientConfig, opts ...grpc.CallOption) (*ClientConfig, error) { + out := new(ClientConfig) + err := c.cc.Invoke(ctx, "/protocol.UI/Subscribe", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *uIClient) Notifications(ctx context.Context, opts ...grpc.CallOption) (UI_NotificationsClient, error) { + stream, err := c.cc.NewStream(ctx, &UI_ServiceDesc.Streams[0], "/protocol.UI/Notifications", opts...) + if err != nil { + return nil, err + } + x := &uINotificationsClient{stream} + return x, nil +} + +type UI_NotificationsClient interface { + Send(*NotificationReply) error + Recv() (*Notification, error) + grpc.ClientStream +} + +type uINotificationsClient struct { + grpc.ClientStream +} + +func (x *uINotificationsClient) Send(m *NotificationReply) error { + return x.ClientStream.SendMsg(m) +} + +func (x *uINotificationsClient) Recv() (*Notification, error) { + m := new(Notification) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// UIServer is the server API for UI service. +// All implementations must embed UnimplementedUIServer +// for forward compatibility +type UIServer interface { + Ping(context.Context, *PingRequest) (*PingReply, error) + AskRule(context.Context, *Connection) (*Rule, error) + Subscribe(context.Context, *ClientConfig) (*ClientConfig, error) + Notifications(UI_NotificationsServer) error + mustEmbedUnimplementedUIServer() +} + +// UnimplementedUIServer must be embedded to have forward compatible implementations. +type UnimplementedUIServer struct { +} + +func (UnimplementedUIServer) Ping(context.Context, *PingRequest) (*PingReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (UnimplementedUIServer) AskRule(context.Context, *Connection) (*Rule, error) { + return nil, status.Errorf(codes.Unimplemented, "method AskRule not implemented") +} +func (UnimplementedUIServer) Subscribe(context.Context, *ClientConfig) (*ClientConfig, error) { + return nil, status.Errorf(codes.Unimplemented, "method Subscribe not implemented") +} +func (UnimplementedUIServer) Notifications(UI_NotificationsServer) error { + return status.Errorf(codes.Unimplemented, "method Notifications not implemented") +} +func (UnimplementedUIServer) mustEmbedUnimplementedUIServer() {} + +// UnsafeUIServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to UIServer will +// result in compilation errors. +type UnsafeUIServer interface { + mustEmbedUnimplementedUIServer() +} + +func RegisterUIServer(s grpc.ServiceRegistrar, srv UIServer) { + s.RegisterService(&UI_ServiceDesc, srv) +} + +func _UI_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UIServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protocol.UI/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UIServer).Ping(ctx, req.(*PingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UI_AskRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Connection) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UIServer).AskRule(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protocol.UI/AskRule", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UIServer).AskRule(ctx, req.(*Connection)) + } + return interceptor(ctx, in, info, handler) +} + +func _UI_Subscribe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClientConfig) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UIServer).Subscribe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protocol.UI/Subscribe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UIServer).Subscribe(ctx, req.(*ClientConfig)) + } + return interceptor(ctx, in, info, handler) +} + +func _UI_Notifications_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(UIServer).Notifications(&uINotificationsServer{stream}) +} + +type UI_NotificationsServer interface { + Send(*Notification) error + Recv() (*NotificationReply, error) + grpc.ServerStream +} + +type uINotificationsServer struct { + grpc.ServerStream +} + +func (x *uINotificationsServer) Send(m *Notification) error { + return x.ServerStream.SendMsg(m) +} + +func (x *uINotificationsServer) Recv() (*NotificationReply, error) { + m := new(NotificationReply) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// UI_ServiceDesc is the grpc.ServiceDesc for UI service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var UI_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "protocol.UI", + HandlerType: (*UIServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Ping", + Handler: _UI_Ping_Handler, + }, + { + MethodName: "AskRule", + Handler: _UI_AskRule_Handler, + }, + { + MethodName: "Subscribe", + Handler: _UI_Subscribe_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Notifications", + Handler: _UI_Notifications_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "ui.proto", +}