Adds LLDP (Link Layer Discovery Protocol) topology discovery capability to the agent for local network neighbor detection. New Features: - LLDP-MIB walker for discovering network neighbors via SNMP - New LLDP_TOPOLOGY job type for topology discovery jobs - Automatic IPv4 and IPv6 management address parsing - Bulk neighbor discovery with full port information Protocol Buffers: - Added LldpTopologyResult message for topology data - Added LldpNeighbor message for individual neighbor info - Extended JobType enum with LLDP_TOPOLOGY (value 5) Implementation: - lldp.go: LLDP discovery logic with SNMP walking - agent.go: Job dispatch and result channel handling - Updated handleMessage signature to support LLDP results - Result sent to Phoenix via "lldp_topology_result" event LLDP-MIB OIDs: - 1.0.8802.1.1.2.1.3.3.0 (lldpLocSysName) - 1.0.8802.1.1.2.1.3.7.1.4 (lldpLocPortDesc) - 1.0.8802.1.1.2.1.4.1.1.7 (lldpRemPortId) - 1.0.8802.1.1.2.1.4.1.1.8 (lldpRemPortDesc) - 1.0.8802.1.1.2.1.4.1.1.9 (lldpRemSysName) - 1.0.8802.1.1.2.1.4.2.1.3 (lldpRemManAddr) This enables the Phoenix web application to dispatch LLDP discovery jobs to agents for local neighbor detection, reducing SNMP load on the Phoenix server and improving discovery performance.
3046 lines
90 KiB
Go
3046 lines
90 KiB
Go
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc v7.34.0
|
|
// source: proto/agent.proto
|
|
|
|
package pb
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
unsafe "unsafe"
|
|
)
|
|
|
|
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 JobType int32
|
|
|
|
const (
|
|
JobType_DISCOVER JobType = 0
|
|
JobType_POLL JobType = 1
|
|
JobType_MIKROTIK JobType = 2
|
|
JobType_TEST_CREDENTIALS JobType = 3
|
|
JobType_PING JobType = 4
|
|
JobType_LLDP_TOPOLOGY JobType = 5 // Discover all LLDP neighbors for topology mapping
|
|
)
|
|
|
|
// Enum value maps for JobType.
|
|
var (
|
|
JobType_name = map[int32]string{
|
|
0: "DISCOVER",
|
|
1: "POLL",
|
|
2: "MIKROTIK",
|
|
3: "TEST_CREDENTIALS",
|
|
4: "PING",
|
|
5: "LLDP_TOPOLOGY",
|
|
}
|
|
JobType_value = map[string]int32{
|
|
"DISCOVER": 0,
|
|
"POLL": 1,
|
|
"MIKROTIK": 2,
|
|
"TEST_CREDENTIALS": 3,
|
|
"PING": 4,
|
|
"LLDP_TOPOLOGY": 5,
|
|
}
|
|
)
|
|
|
|
func (x JobType) Enum() *JobType {
|
|
p := new(JobType)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x JobType) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (JobType) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proto_agent_proto_enumTypes[0].Descriptor()
|
|
}
|
|
|
|
func (JobType) Type() protoreflect.EnumType {
|
|
return &file_proto_agent_proto_enumTypes[0]
|
|
}
|
|
|
|
func (x JobType) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use JobType.Descriptor instead.
|
|
func (JobType) EnumDescriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
type QueryType int32
|
|
|
|
const (
|
|
QueryType_GET QueryType = 0
|
|
QueryType_WALK QueryType = 1
|
|
)
|
|
|
|
// Enum value maps for QueryType.
|
|
var (
|
|
QueryType_name = map[int32]string{
|
|
0: "GET",
|
|
1: "WALK",
|
|
}
|
|
QueryType_value = map[string]int32{
|
|
"GET": 0,
|
|
"WALK": 1,
|
|
}
|
|
)
|
|
|
|
func (x QueryType) Enum() *QueryType {
|
|
p := new(QueryType)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x QueryType) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (QueryType) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proto_agent_proto_enumTypes[1].Descriptor()
|
|
}
|
|
|
|
func (QueryType) Type() protoreflect.EnumType {
|
|
return &file_proto_agent_proto_enumTypes[1]
|
|
}
|
|
|
|
func (x QueryType) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use QueryType.Descriptor instead.
|
|
func (QueryType) EnumDescriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
// Configuration received from the API
|
|
type AgentConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
|
PollIntervalSeconds uint32 `protobuf:"varint,2,opt,name=poll_interval_seconds,json=pollIntervalSeconds,proto3" json:"poll_interval_seconds,omitempty"`
|
|
Devices []*Device `protobuf:"bytes,3,rep,name=devices,proto3" json:"devices,omitempty"`
|
|
Checks []*Check `protobuf:"bytes,4,rep,name=checks,proto3" json:"checks,omitempty"` // Service checks (HTTP/TCP/DNS)
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AgentConfig) Reset() {
|
|
*x = AgentConfig{}
|
|
mi := &file_proto_agent_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AgentConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AgentConfig) ProtoMessage() {}
|
|
|
|
func (x *AgentConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[0]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AgentConfig.ProtoReflect.Descriptor instead.
|
|
func (*AgentConfig) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *AgentConfig) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentConfig) GetPollIntervalSeconds() uint32 {
|
|
if x != nil {
|
|
return x.PollIntervalSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *AgentConfig) GetDevices() []*Device {
|
|
if x != nil {
|
|
return x.Devices
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AgentConfig) GetChecks() []*Check {
|
|
if x != nil {
|
|
return x.Checks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Device struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
|
IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
|
|
Snmp *SnmpConfig `protobuf:"bytes,4,opt,name=snmp,proto3" json:"snmp,omitempty"`
|
|
PollIntervalSeconds uint32 `protobuf:"varint,5,opt,name=poll_interval_seconds,json=pollIntervalSeconds,proto3" json:"poll_interval_seconds,omitempty"`
|
|
Sensors []*Sensor `protobuf:"bytes,6,rep,name=sensors,proto3" json:"sensors,omitempty"`
|
|
Interfaces []*Interface `protobuf:"bytes,7,rep,name=interfaces,proto3" json:"interfaces,omitempty"`
|
|
MonitoringEnabled bool `protobuf:"varint,8,opt,name=monitoring_enabled,json=monitoringEnabled,proto3" json:"monitoring_enabled,omitempty"`
|
|
CheckIntervalSeconds uint32 `protobuf:"varint,9,opt,name=check_interval_seconds,json=checkIntervalSeconds,proto3" json:"check_interval_seconds,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Device) Reset() {
|
|
*x = Device{}
|
|
mi := &file_proto_agent_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Device) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Device) ProtoMessage() {}
|
|
|
|
func (x *Device) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[1]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Device.ProtoReflect.Descriptor instead.
|
|
func (*Device) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *Device) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Device) GetName() string {
|
|
if x != nil {
|
|
return x.Name
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Device) GetIpAddress() string {
|
|
if x != nil {
|
|
return x.IpAddress
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Device) GetSnmp() *SnmpConfig {
|
|
if x != nil {
|
|
return x.Snmp
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Device) GetPollIntervalSeconds() uint32 {
|
|
if x != nil {
|
|
return x.PollIntervalSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Device) GetSensors() []*Sensor {
|
|
if x != nil {
|
|
return x.Sensors
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Device) GetInterfaces() []*Interface {
|
|
if x != nil {
|
|
return x.Interfaces
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Device) GetMonitoringEnabled() bool {
|
|
if x != nil {
|
|
return x.MonitoringEnabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Device) GetCheckIntervalSeconds() uint32 {
|
|
if x != nil {
|
|
return x.CheckIntervalSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type SnmpConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
|
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
|
Community string `protobuf:"bytes,3,opt,name=community,proto3" json:"community,omitempty"`
|
|
Port uint32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
|
|
Transport string `protobuf:"bytes,5,opt,name=transport,proto3" json:"transport,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SnmpConfig) Reset() {
|
|
*x = SnmpConfig{}
|
|
mi := &file_proto_agent_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SnmpConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SnmpConfig) ProtoMessage() {}
|
|
|
|
func (x *SnmpConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[2]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SnmpConfig.ProtoReflect.Descriptor instead.
|
|
func (*SnmpConfig) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *SnmpConfig) GetEnabled() bool {
|
|
if x != nil {
|
|
return x.Enabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *SnmpConfig) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpConfig) GetCommunity() string {
|
|
if x != nil {
|
|
return x.Community
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpConfig) GetPort() uint32 {
|
|
if x != nil {
|
|
return x.Port
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *SnmpConfig) GetTransport() string {
|
|
if x != nil {
|
|
return x.Transport
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Sensor struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
|
|
Oid string `protobuf:"bytes,3,opt,name=oid,proto3" json:"oid,omitempty"`
|
|
Divisor float64 `protobuf:"fixed64,4,opt,name=divisor,proto3" json:"divisor,omitempty"`
|
|
Unit string `protobuf:"bytes,5,opt,name=unit,proto3" json:"unit,omitempty"`
|
|
Metadata map[string]string `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Sensor) Reset() {
|
|
*x = Sensor{}
|
|
mi := &file_proto_agent_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Sensor) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Sensor) ProtoMessage() {}
|
|
|
|
func (x *Sensor) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[3]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Sensor.ProtoReflect.Descriptor instead.
|
|
func (*Sensor) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *Sensor) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Sensor) GetType() string {
|
|
if x != nil {
|
|
return x.Type
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Sensor) GetOid() string {
|
|
if x != nil {
|
|
return x.Oid
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Sensor) GetDivisor() float64 {
|
|
if x != nil {
|
|
return x.Divisor
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Sensor) GetUnit() string {
|
|
if x != nil {
|
|
return x.Unit
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Sensor) GetMetadata() map[string]string {
|
|
if x != nil {
|
|
return x.Metadata
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Interface struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
IfIndex uint32 `protobuf:"varint,2,opt,name=if_index,json=ifIndex,proto3" json:"if_index,omitempty"`
|
|
IfName string `protobuf:"bytes,3,opt,name=if_name,json=ifName,proto3" json:"if_name,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Interface) Reset() {
|
|
*x = Interface{}
|
|
mi := &file_proto_agent_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Interface) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Interface) ProtoMessage() {}
|
|
|
|
func (x *Interface) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[4]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Interface.ProtoReflect.Descriptor instead.
|
|
func (*Interface) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *Interface) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Interface) GetIfIndex() uint32 {
|
|
if x != nil {
|
|
return x.IfIndex
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Interface) GetIfName() string {
|
|
if x != nil {
|
|
return x.IfName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// Metrics submitted to the API
|
|
type MetricBatch struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Metrics []*Metric `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MetricBatch) Reset() {
|
|
*x = MetricBatch{}
|
|
mi := &file_proto_agent_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MetricBatch) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MetricBatch) ProtoMessage() {}
|
|
|
|
func (x *MetricBatch) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[5]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MetricBatch.ProtoReflect.Descriptor instead.
|
|
func (*MetricBatch) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *MetricBatch) GetMetrics() []*Metric {
|
|
if x != nil {
|
|
return x.Metrics
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Metric struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to MetricType:
|
|
//
|
|
// *Metric_SensorReading
|
|
// *Metric_InterfaceStat
|
|
// *Metric_NeighborDiscovery
|
|
// *Metric_MonitoringCheck
|
|
// *Metric_CheckResult
|
|
MetricType isMetric_MetricType `protobuf_oneof:"metric_type"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Metric) Reset() {
|
|
*x = Metric{}
|
|
mi := &file_proto_agent_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Metric) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Metric) ProtoMessage() {}
|
|
|
|
func (x *Metric) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[6]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Metric.ProtoReflect.Descriptor instead.
|
|
func (*Metric) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *Metric) GetMetricType() isMetric_MetricType {
|
|
if x != nil {
|
|
return x.MetricType
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Metric) GetSensorReading() *SensorReading {
|
|
if x != nil {
|
|
if x, ok := x.MetricType.(*Metric_SensorReading); ok {
|
|
return x.SensorReading
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Metric) GetInterfaceStat() *InterfaceStat {
|
|
if x != nil {
|
|
if x, ok := x.MetricType.(*Metric_InterfaceStat); ok {
|
|
return x.InterfaceStat
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Metric) GetNeighborDiscovery() *NeighborDiscovery {
|
|
if x != nil {
|
|
if x, ok := x.MetricType.(*Metric_NeighborDiscovery); ok {
|
|
return x.NeighborDiscovery
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Metric) GetMonitoringCheck() *MonitoringCheck {
|
|
if x != nil {
|
|
if x, ok := x.MetricType.(*Metric_MonitoringCheck); ok {
|
|
return x.MonitoringCheck
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Metric) GetCheckResult() *CheckResult {
|
|
if x != nil {
|
|
if x, ok := x.MetricType.(*Metric_CheckResult); ok {
|
|
return x.CheckResult
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isMetric_MetricType interface {
|
|
isMetric_MetricType()
|
|
}
|
|
|
|
type Metric_SensorReading struct {
|
|
SensorReading *SensorReading `protobuf:"bytes,1,opt,name=sensor_reading,json=sensorReading,proto3,oneof"`
|
|
}
|
|
|
|
type Metric_InterfaceStat struct {
|
|
InterfaceStat *InterfaceStat `protobuf:"bytes,2,opt,name=interface_stat,json=interfaceStat,proto3,oneof"`
|
|
}
|
|
|
|
type Metric_NeighborDiscovery struct {
|
|
NeighborDiscovery *NeighborDiscovery `protobuf:"bytes,3,opt,name=neighbor_discovery,json=neighborDiscovery,proto3,oneof"`
|
|
}
|
|
|
|
type Metric_MonitoringCheck struct {
|
|
MonitoringCheck *MonitoringCheck `protobuf:"bytes,4,opt,name=monitoring_check,json=monitoringCheck,proto3,oneof"`
|
|
}
|
|
|
|
type Metric_CheckResult struct {
|
|
CheckResult *CheckResult `protobuf:"bytes,5,opt,name=check_result,json=checkResult,proto3,oneof"` // Service check results (HTTP/TCP/DNS)
|
|
}
|
|
|
|
func (*Metric_SensorReading) isMetric_MetricType() {}
|
|
|
|
func (*Metric_InterfaceStat) isMetric_MetricType() {}
|
|
|
|
func (*Metric_NeighborDiscovery) isMetric_MetricType() {}
|
|
|
|
func (*Metric_MonitoringCheck) isMetric_MetricType() {}
|
|
|
|
func (*Metric_CheckResult) isMetric_MetricType() {}
|
|
|
|
type SensorReading struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
SensorId string `protobuf:"bytes,1,opt,name=sensor_id,json=sensorId,proto3" json:"sensor_id,omitempty"`
|
|
Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
|
|
Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp in seconds
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SensorReading) Reset() {
|
|
*x = SensorReading{}
|
|
mi := &file_proto_agent_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SensorReading) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SensorReading) ProtoMessage() {}
|
|
|
|
func (x *SensorReading) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[7]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SensorReading.ProtoReflect.Descriptor instead.
|
|
func (*SensorReading) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
func (x *SensorReading) GetSensorId() string {
|
|
if x != nil {
|
|
return x.SensorId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SensorReading) GetValue() float64 {
|
|
if x != nil {
|
|
return x.Value
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *SensorReading) GetStatus() string {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SensorReading) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type InterfaceStat struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
InterfaceId string `protobuf:"bytes,1,opt,name=interface_id,json=interfaceId,proto3" json:"interface_id,omitempty"`
|
|
IfInOctets int64 `protobuf:"varint,2,opt,name=if_in_octets,json=ifInOctets,proto3" json:"if_in_octets,omitempty"`
|
|
IfOutOctets int64 `protobuf:"varint,3,opt,name=if_out_octets,json=ifOutOctets,proto3" json:"if_out_octets,omitempty"`
|
|
IfInErrors int64 `protobuf:"varint,4,opt,name=if_in_errors,json=ifInErrors,proto3" json:"if_in_errors,omitempty"`
|
|
IfOutErrors int64 `protobuf:"varint,5,opt,name=if_out_errors,json=ifOutErrors,proto3" json:"if_out_errors,omitempty"`
|
|
IfInDiscards int64 `protobuf:"varint,6,opt,name=if_in_discards,json=ifInDiscards,proto3" json:"if_in_discards,omitempty"`
|
|
IfOutDiscards int64 `protobuf:"varint,7,opt,name=if_out_discards,json=ifOutDiscards,proto3" json:"if_out_discards,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp in seconds
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *InterfaceStat) Reset() {
|
|
*x = InterfaceStat{}
|
|
mi := &file_proto_agent_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *InterfaceStat) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*InterfaceStat) ProtoMessage() {}
|
|
|
|
func (x *InterfaceStat) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[8]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use InterfaceStat.ProtoReflect.Descriptor instead.
|
|
func (*InterfaceStat) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *InterfaceStat) GetInterfaceId() string {
|
|
if x != nil {
|
|
return x.InterfaceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *InterfaceStat) GetIfInOctets() int64 {
|
|
if x != nil {
|
|
return x.IfInOctets
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *InterfaceStat) GetIfOutOctets() int64 {
|
|
if x != nil {
|
|
return x.IfOutOctets
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *InterfaceStat) GetIfInErrors() int64 {
|
|
if x != nil {
|
|
return x.IfInErrors
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *InterfaceStat) GetIfOutErrors() int64 {
|
|
if x != nil {
|
|
return x.IfOutErrors
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *InterfaceStat) GetIfInDiscards() int64 {
|
|
if x != nil {
|
|
return x.IfInDiscards
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *InterfaceStat) GetIfOutDiscards() int64 {
|
|
if x != nil {
|
|
return x.IfOutDiscards
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *InterfaceStat) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type NeighborDiscovery struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
InterfaceId string `protobuf:"bytes,1,opt,name=interface_id,json=interfaceId,proto3" json:"interface_id,omitempty"`
|
|
Protocol string `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // "lldp" or "cdp"
|
|
RemoteChassisId string `protobuf:"bytes,3,opt,name=remote_chassis_id,json=remoteChassisId,proto3" json:"remote_chassis_id,omitempty"`
|
|
RemoteSystemName string `protobuf:"bytes,4,opt,name=remote_system_name,json=remoteSystemName,proto3" json:"remote_system_name,omitempty"`
|
|
RemoteSystemDescription string `protobuf:"bytes,5,opt,name=remote_system_description,json=remoteSystemDescription,proto3" json:"remote_system_description,omitempty"`
|
|
RemotePlatform string `protobuf:"bytes,6,opt,name=remote_platform,json=remotePlatform,proto3" json:"remote_platform,omitempty"`
|
|
RemotePortId string `protobuf:"bytes,7,opt,name=remote_port_id,json=remotePortId,proto3" json:"remote_port_id,omitempty"`
|
|
RemotePortDescription string `protobuf:"bytes,8,opt,name=remote_port_description,json=remotePortDescription,proto3" json:"remote_port_description,omitempty"`
|
|
RemoteAddress string `protobuf:"bytes,9,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"`
|
|
RemoteCapabilities []string `protobuf:"bytes,10,rep,name=remote_capabilities,json=remoteCapabilities,proto3" json:"remote_capabilities,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,11,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp in seconds
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *NeighborDiscovery) Reset() {
|
|
*x = NeighborDiscovery{}
|
|
mi := &file_proto_agent_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *NeighborDiscovery) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*NeighborDiscovery) ProtoMessage() {}
|
|
|
|
func (x *NeighborDiscovery) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[9]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use NeighborDiscovery.ProtoReflect.Descriptor instead.
|
|
func (*NeighborDiscovery) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetInterfaceId() string {
|
|
if x != nil {
|
|
return x.InterfaceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetProtocol() string {
|
|
if x != nil {
|
|
return x.Protocol
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemoteChassisId() string {
|
|
if x != nil {
|
|
return x.RemoteChassisId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemoteSystemName() string {
|
|
if x != nil {
|
|
return x.RemoteSystemName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemoteSystemDescription() string {
|
|
if x != nil {
|
|
return x.RemoteSystemDescription
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemotePlatform() string {
|
|
if x != nil {
|
|
return x.RemotePlatform
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemotePortId() string {
|
|
if x != nil {
|
|
return x.RemotePortId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemotePortDescription() string {
|
|
if x != nil {
|
|
return x.RemotePortDescription
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemoteAddress() string {
|
|
if x != nil {
|
|
return x.RemoteAddress
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetRemoteCapabilities() []string {
|
|
if x != nil {
|
|
return x.RemoteCapabilities
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *NeighborDiscovery) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type MonitoringCheck struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
|
|
Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // "success" or "failure"
|
|
ResponseTimeMs float64 `protobuf:"fixed64,3,opt,name=response_time_ms,json=responseTimeMs,proto3" json:"response_time_ms,omitempty"` // Optional - only present on success
|
|
Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp in seconds
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MonitoringCheck) Reset() {
|
|
*x = MonitoringCheck{}
|
|
mi := &file_proto_agent_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MonitoringCheck) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MonitoringCheck) ProtoMessage() {}
|
|
|
|
func (x *MonitoringCheck) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[10]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MonitoringCheck.ProtoReflect.Descriptor instead.
|
|
func (*MonitoringCheck) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *MonitoringCheck) GetDeviceId() string {
|
|
if x != nil {
|
|
return x.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MonitoringCheck) GetStatus() string {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MonitoringCheck) GetResponseTimeMs() float64 {
|
|
if x != nil {
|
|
return x.ResponseTimeMs
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *MonitoringCheck) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type Check struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
CheckType string `protobuf:"bytes,2,opt,name=check_type,json=checkType,proto3" json:"check_type,omitempty"` // "http", "tcp", "dns"
|
|
IntervalSeconds uint32 `protobuf:"varint,3,opt,name=interval_seconds,json=intervalSeconds,proto3" json:"interval_seconds,omitempty"`
|
|
TimeoutMs uint32 `protobuf:"varint,4,opt,name=timeout_ms,json=timeoutMs,proto3" json:"timeout_ms,omitempty"`
|
|
// Type-specific config (JSON from Phoenix config field)
|
|
//
|
|
// Types that are valid to be assigned to Config:
|
|
//
|
|
// *Check_Http
|
|
// *Check_Tcp
|
|
// *Check_Dns
|
|
Config isCheck_Config `protobuf_oneof:"config"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Check) Reset() {
|
|
*x = Check{}
|
|
mi := &file_proto_agent_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Check) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Check) ProtoMessage() {}
|
|
|
|
func (x *Check) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[11]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Check.ProtoReflect.Descriptor instead.
|
|
func (*Check) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
func (x *Check) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Check) GetCheckType() string {
|
|
if x != nil {
|
|
return x.CheckType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Check) GetIntervalSeconds() uint32 {
|
|
if x != nil {
|
|
return x.IntervalSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Check) GetTimeoutMs() uint32 {
|
|
if x != nil {
|
|
return x.TimeoutMs
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Check) GetConfig() isCheck_Config {
|
|
if x != nil {
|
|
return x.Config
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Check) GetHttp() *HttpCheckConfig {
|
|
if x != nil {
|
|
if x, ok := x.Config.(*Check_Http); ok {
|
|
return x.Http
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Check) GetTcp() *TcpCheckConfig {
|
|
if x != nil {
|
|
if x, ok := x.Config.(*Check_Tcp); ok {
|
|
return x.Tcp
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Check) GetDns() *DnsCheckConfig {
|
|
if x != nil {
|
|
if x, ok := x.Config.(*Check_Dns); ok {
|
|
return x.Dns
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isCheck_Config interface {
|
|
isCheck_Config()
|
|
}
|
|
|
|
type Check_Http struct {
|
|
Http *HttpCheckConfig `protobuf:"bytes,5,opt,name=http,proto3,oneof"`
|
|
}
|
|
|
|
type Check_Tcp struct {
|
|
Tcp *TcpCheckConfig `protobuf:"bytes,6,opt,name=tcp,proto3,oneof"`
|
|
}
|
|
|
|
type Check_Dns struct {
|
|
Dns *DnsCheckConfig `protobuf:"bytes,7,opt,name=dns,proto3,oneof"`
|
|
}
|
|
|
|
func (*Check_Http) isCheck_Config() {}
|
|
|
|
func (*Check_Tcp) isCheck_Config() {}
|
|
|
|
func (*Check_Dns) isCheck_Config() {}
|
|
|
|
type HttpCheckConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
|
|
Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` // GET, POST, etc.
|
|
ExpectedStatus uint32 `protobuf:"varint,3,opt,name=expected_status,json=expectedStatus,proto3" json:"expected_status,omitempty"`
|
|
VerifySsl bool `protobuf:"varint,4,opt,name=verify_ssl,json=verifySsl,proto3" json:"verify_ssl,omitempty"`
|
|
Headers map[string]string `protobuf:"bytes,5,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
Body string `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"`
|
|
Regex string `protobuf:"bytes,7,opt,name=regex,proto3" json:"regex,omitempty"` // Content match regex
|
|
FollowRedirects bool `protobuf:"varint,8,opt,name=follow_redirects,json=followRedirects,proto3" json:"follow_redirects,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *HttpCheckConfig) Reset() {
|
|
*x = HttpCheckConfig{}
|
|
mi := &file_proto_agent_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *HttpCheckConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*HttpCheckConfig) ProtoMessage() {}
|
|
|
|
func (x *HttpCheckConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[12]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use HttpCheckConfig.ProtoReflect.Descriptor instead.
|
|
func (*HttpCheckConfig) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetUrl() string {
|
|
if x != nil {
|
|
return x.Url
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetMethod() string {
|
|
if x != nil {
|
|
return x.Method
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetExpectedStatus() uint32 {
|
|
if x != nil {
|
|
return x.ExpectedStatus
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetVerifySsl() bool {
|
|
if x != nil {
|
|
return x.VerifySsl
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetHeaders() map[string]string {
|
|
if x != nil {
|
|
return x.Headers
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetBody() string {
|
|
if x != nil {
|
|
return x.Body
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetRegex() string {
|
|
if x != nil {
|
|
return x.Regex
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HttpCheckConfig) GetFollowRedirects() bool {
|
|
if x != nil {
|
|
return x.FollowRedirects
|
|
}
|
|
return false
|
|
}
|
|
|
|
type TcpCheckConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
|
|
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
|
|
Send string `protobuf:"bytes,3,opt,name=send,proto3" json:"send,omitempty"` // Data to send after connection
|
|
Expect string `protobuf:"bytes,4,opt,name=expect,proto3" json:"expect,omitempty"` // Expected response
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *TcpCheckConfig) Reset() {
|
|
*x = TcpCheckConfig{}
|
|
mi := &file_proto_agent_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *TcpCheckConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*TcpCheckConfig) ProtoMessage() {}
|
|
|
|
func (x *TcpCheckConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[13]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use TcpCheckConfig.ProtoReflect.Descriptor instead.
|
|
func (*TcpCheckConfig) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{13}
|
|
}
|
|
|
|
func (x *TcpCheckConfig) GetHost() string {
|
|
if x != nil {
|
|
return x.Host
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *TcpCheckConfig) GetPort() uint32 {
|
|
if x != nil {
|
|
return x.Port
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *TcpCheckConfig) GetSend() string {
|
|
if x != nil {
|
|
return x.Send
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *TcpCheckConfig) GetExpect() string {
|
|
if x != nil {
|
|
return x.Expect
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type DnsCheckConfig struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
|
|
Server string `protobuf:"bytes,2,opt,name=server,proto3" json:"server,omitempty"` // DNS server (optional)
|
|
RecordType string `protobuf:"bytes,3,opt,name=record_type,json=recordType,proto3" json:"record_type,omitempty"` // A, AAAA, CNAME, MX, TXT
|
|
Expected string `protobuf:"bytes,4,opt,name=expected,proto3" json:"expected,omitempty"` // Expected result (optional)
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DnsCheckConfig) Reset() {
|
|
*x = DnsCheckConfig{}
|
|
mi := &file_proto_agent_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DnsCheckConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DnsCheckConfig) ProtoMessage() {}
|
|
|
|
func (x *DnsCheckConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[14]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use DnsCheckConfig.ProtoReflect.Descriptor instead.
|
|
func (*DnsCheckConfig) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{14}
|
|
}
|
|
|
|
func (x *DnsCheckConfig) GetHostname() string {
|
|
if x != nil {
|
|
return x.Hostname
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *DnsCheckConfig) GetServer() string {
|
|
if x != nil {
|
|
return x.Server
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *DnsCheckConfig) GetRecordType() string {
|
|
if x != nil {
|
|
return x.RecordType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *DnsCheckConfig) GetExpected() string {
|
|
if x != nil {
|
|
return x.Expected
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type CheckResult struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
CheckId string `protobuf:"bytes,1,opt,name=check_id,json=checkId,proto3" json:"check_id,omitempty"`
|
|
Status uint32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` // 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN
|
|
Output string `protobuf:"bytes,3,opt,name=output,proto3" json:"output,omitempty"`
|
|
ResponseTimeMs float64 `protobuf:"fixed64,4,opt,name=response_time_ms,json=responseTimeMs,proto3" json:"response_time_ms,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Unix timestamp in seconds
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CheckResult) Reset() {
|
|
*x = CheckResult{}
|
|
mi := &file_proto_agent_proto_msgTypes[15]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CheckResult) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CheckResult) ProtoMessage() {}
|
|
|
|
func (x *CheckResult) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[15]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CheckResult.ProtoReflect.Descriptor instead.
|
|
func (*CheckResult) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{15}
|
|
}
|
|
|
|
func (x *CheckResult) GetCheckId() string {
|
|
if x != nil {
|
|
return x.CheckId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckResult) GetStatus() uint32 {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *CheckResult) GetOutput() string {
|
|
if x != nil {
|
|
return x.Output
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckResult) GetResponseTimeMs() float64 {
|
|
if x != nil {
|
|
return x.ResponseTimeMs
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *CheckResult) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type CheckList struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Checks []*Check `protobuf:"bytes,1,rep,name=checks,proto3" json:"checks,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CheckList) Reset() {
|
|
*x = CheckList{}
|
|
mi := &file_proto_agent_proto_msgTypes[16]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CheckList) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CheckList) ProtoMessage() {}
|
|
|
|
func (x *CheckList) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[16]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CheckList.ProtoReflect.Descriptor instead.
|
|
func (*CheckList) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{16}
|
|
}
|
|
|
|
func (x *CheckList) GetChecks() []*Check {
|
|
if x != nil {
|
|
return x.Checks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Heartbeat metadata
|
|
type HeartbeatMetadata struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
|
Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
|
|
UptimeSeconds uint64 `protobuf:"varint,3,opt,name=uptime_seconds,json=uptimeSeconds,proto3" json:"uptime_seconds,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *HeartbeatMetadata) Reset() {
|
|
*x = HeartbeatMetadata{}
|
|
mi := &file_proto_agent_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *HeartbeatMetadata) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*HeartbeatMetadata) ProtoMessage() {}
|
|
|
|
func (x *HeartbeatMetadata) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[17]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use HeartbeatMetadata.ProtoReflect.Descriptor instead.
|
|
func (*HeartbeatMetadata) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{17}
|
|
}
|
|
|
|
func (x *HeartbeatMetadata) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HeartbeatMetadata) GetHostname() string {
|
|
if x != nil {
|
|
return x.Hostname
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HeartbeatMetadata) GetUptimeSeconds() uint64 {
|
|
if x != nil {
|
|
return x.UptimeSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type HeartbeatResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *HeartbeatResponse) Reset() {
|
|
*x = HeartbeatResponse{}
|
|
mi := &file_proto_agent_proto_msgTypes[18]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *HeartbeatResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*HeartbeatResponse) ProtoMessage() {}
|
|
|
|
func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[18]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead.
|
|
func (*HeartbeatResponse) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{18}
|
|
}
|
|
|
|
func (x *HeartbeatResponse) GetStatus() string {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type AgentJobList struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Jobs []*AgentJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AgentJobList) Reset() {
|
|
*x = AgentJobList{}
|
|
mi := &file_proto_agent_proto_msgTypes[19]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AgentJobList) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AgentJobList) ProtoMessage() {}
|
|
|
|
func (x *AgentJobList) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[19]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AgentJobList.ProtoReflect.Descriptor instead.
|
|
func (*AgentJobList) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{19}
|
|
}
|
|
|
|
func (x *AgentJobList) GetJobs() []*AgentJob {
|
|
if x != nil {
|
|
return x.Jobs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type AgentJob struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
|
|
JobType JobType `protobuf:"varint,2,opt,name=job_type,json=jobType,proto3,enum=towerops.agent.JobType" json:"job_type,omitempty"`
|
|
DeviceId string `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
|
|
SnmpDevice *SnmpDevice `protobuf:"bytes,4,opt,name=snmp_device,json=snmpDevice,proto3" json:"snmp_device,omitempty"`
|
|
Queries []*SnmpQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"`
|
|
MikrotikDevice *MikrotikDevice `protobuf:"bytes,6,opt,name=mikrotik_device,json=mikrotikDevice,proto3" json:"mikrotik_device,omitempty"`
|
|
MikrotikCommands []*MikrotikCommand `protobuf:"bytes,7,rep,name=mikrotik_commands,json=mikrotikCommands,proto3" json:"mikrotik_commands,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AgentJob) Reset() {
|
|
*x = AgentJob{}
|
|
mi := &file_proto_agent_proto_msgTypes[20]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AgentJob) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AgentJob) ProtoMessage() {}
|
|
|
|
func (x *AgentJob) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[20]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AgentJob.ProtoReflect.Descriptor instead.
|
|
func (*AgentJob) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{20}
|
|
}
|
|
|
|
func (x *AgentJob) GetJobId() string {
|
|
if x != nil {
|
|
return x.JobId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentJob) GetJobType() JobType {
|
|
if x != nil {
|
|
return x.JobType
|
|
}
|
|
return JobType_DISCOVER
|
|
}
|
|
|
|
func (x *AgentJob) GetDeviceId() string {
|
|
if x != nil {
|
|
return x.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentJob) GetSnmpDevice() *SnmpDevice {
|
|
if x != nil {
|
|
return x.SnmpDevice
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AgentJob) GetQueries() []*SnmpQuery {
|
|
if x != nil {
|
|
return x.Queries
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AgentJob) GetMikrotikDevice() *MikrotikDevice {
|
|
if x != nil {
|
|
return x.MikrotikDevice
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AgentJob) GetMikrotikCommands() []*MikrotikCommand {
|
|
if x != nil {
|
|
return x.MikrotikCommands
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type SnmpDevice struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
|
|
Community string `protobuf:"bytes,2,opt,name=community,proto3" json:"community,omitempty"` // v1/v2c only (deprecated for v3)
|
|
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
|
|
Port uint32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
|
|
// SNMPv3 credentials (optional, backward compatible)
|
|
V3SecurityLevel string `protobuf:"bytes,5,opt,name=v3_security_level,json=v3SecurityLevel,proto3" json:"v3_security_level,omitempty"` // "noAuthNoPriv" | "authNoPriv" | "authPriv"
|
|
V3Username string `protobuf:"bytes,6,opt,name=v3_username,json=v3Username,proto3" json:"v3_username,omitempty"`
|
|
V3AuthProtocol string `protobuf:"bytes,7,opt,name=v3_auth_protocol,json=v3AuthProtocol,proto3" json:"v3_auth_protocol,omitempty"` // "MD5" | "SHA" | "SHA-256" | etc.
|
|
V3AuthPassword string `protobuf:"bytes,8,opt,name=v3_auth_password,json=v3AuthPassword,proto3" json:"v3_auth_password,omitempty"` // Decrypted before sending
|
|
V3PrivProtocol string `protobuf:"bytes,9,opt,name=v3_priv_protocol,json=v3PrivProtocol,proto3" json:"v3_priv_protocol,omitempty"` // "DES" | "AES" | "AES-256" | etc.
|
|
V3PrivPassword string `protobuf:"bytes,10,opt,name=v3_priv_password,json=v3PrivPassword,proto3" json:"v3_priv_password,omitempty"` // Decrypted before sending
|
|
Transport string `protobuf:"bytes,11,opt,name=transport,proto3" json:"transport,omitempty"` // "udp" | "tcp"
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SnmpDevice) Reset() {
|
|
*x = SnmpDevice{}
|
|
mi := &file_proto_agent_proto_msgTypes[21]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SnmpDevice) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SnmpDevice) ProtoMessage() {}
|
|
|
|
func (x *SnmpDevice) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[21]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SnmpDevice.ProtoReflect.Descriptor instead.
|
|
func (*SnmpDevice) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{21}
|
|
}
|
|
|
|
func (x *SnmpDevice) GetIp() string {
|
|
if x != nil {
|
|
return x.Ip
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetCommunity() string {
|
|
if x != nil {
|
|
return x.Community
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetPort() uint32 {
|
|
if x != nil {
|
|
return x.Port
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *SnmpDevice) GetV3SecurityLevel() string {
|
|
if x != nil {
|
|
return x.V3SecurityLevel
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetV3Username() string {
|
|
if x != nil {
|
|
return x.V3Username
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetV3AuthProtocol() string {
|
|
if x != nil {
|
|
return x.V3AuthProtocol
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetV3AuthPassword() string {
|
|
if x != nil {
|
|
return x.V3AuthPassword
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetV3PrivProtocol() string {
|
|
if x != nil {
|
|
return x.V3PrivProtocol
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetV3PrivPassword() string {
|
|
if x != nil {
|
|
return x.V3PrivPassword
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpDevice) GetTransport() string {
|
|
if x != nil {
|
|
return x.Transport
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type SnmpQuery struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
QueryType QueryType `protobuf:"varint,1,opt,name=query_type,json=queryType,proto3,enum=towerops.agent.QueryType" json:"query_type,omitempty"`
|
|
Oids []string `protobuf:"bytes,2,rep,name=oids,proto3" json:"oids,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SnmpQuery) Reset() {
|
|
*x = SnmpQuery{}
|
|
mi := &file_proto_agent_proto_msgTypes[22]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SnmpQuery) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SnmpQuery) ProtoMessage() {}
|
|
|
|
func (x *SnmpQuery) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[22]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SnmpQuery.ProtoReflect.Descriptor instead.
|
|
func (*SnmpQuery) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{22}
|
|
}
|
|
|
|
func (x *SnmpQuery) GetQueryType() QueryType {
|
|
if x != nil {
|
|
return x.QueryType
|
|
}
|
|
return QueryType_GET
|
|
}
|
|
|
|
func (x *SnmpQuery) GetOids() []string {
|
|
if x != nil {
|
|
return x.Oids
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type SnmpResult struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
|
|
JobType JobType `protobuf:"varint,2,opt,name=job_type,json=jobType,proto3,enum=towerops.agent.JobType" json:"job_type,omitempty"`
|
|
OidValues map[string]string `protobuf:"bytes,3,rep,name=oid_values,json=oidValues,proto3" json:"oid_values,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
JobId string `protobuf:"bytes,5,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SnmpResult) Reset() {
|
|
*x = SnmpResult{}
|
|
mi := &file_proto_agent_proto_msgTypes[23]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SnmpResult) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SnmpResult) ProtoMessage() {}
|
|
|
|
func (x *SnmpResult) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[23]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SnmpResult.ProtoReflect.Descriptor instead.
|
|
func (*SnmpResult) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{23}
|
|
}
|
|
|
|
func (x *SnmpResult) GetDeviceId() string {
|
|
if x != nil {
|
|
return x.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SnmpResult) GetJobType() JobType {
|
|
if x != nil {
|
|
return x.JobType
|
|
}
|
|
return JobType_DISCOVER
|
|
}
|
|
|
|
func (x *SnmpResult) GetOidValues() map[string]string {
|
|
if x != nil {
|
|
return x.OidValues
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *SnmpResult) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *SnmpResult) GetJobId() string {
|
|
if x != nil {
|
|
return x.JobId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type AgentHeartbeat struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
|
Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
|
|
UptimeSeconds uint64 `protobuf:"varint,3,opt,name=uptime_seconds,json=uptimeSeconds,proto3" json:"uptime_seconds,omitempty"`
|
|
IpAddress string `protobuf:"bytes,4,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
|
|
Arch string `protobuf:"bytes,5,opt,name=arch,proto3" json:"arch,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AgentHeartbeat) Reset() {
|
|
*x = AgentHeartbeat{}
|
|
mi := &file_proto_agent_proto_msgTypes[24]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AgentHeartbeat) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AgentHeartbeat) ProtoMessage() {}
|
|
|
|
func (x *AgentHeartbeat) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[24]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AgentHeartbeat.ProtoReflect.Descriptor instead.
|
|
func (*AgentHeartbeat) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{24}
|
|
}
|
|
|
|
func (x *AgentHeartbeat) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentHeartbeat) GetHostname() string {
|
|
if x != nil {
|
|
return x.Hostname
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentHeartbeat) GetUptimeSeconds() uint64 {
|
|
if x != nil {
|
|
return x.UptimeSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *AgentHeartbeat) GetIpAddress() string {
|
|
if x != nil {
|
|
return x.IpAddress
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentHeartbeat) GetArch() string {
|
|
if x != nil {
|
|
return x.Arch
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type AgentError struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
|
|
JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
|
|
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AgentError) Reset() {
|
|
*x = AgentError{}
|
|
mi := &file_proto_agent_proto_msgTypes[25]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AgentError) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AgentError) ProtoMessage() {}
|
|
|
|
func (x *AgentError) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[25]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AgentError.ProtoReflect.Descriptor instead.
|
|
func (*AgentError) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{25}
|
|
}
|
|
|
|
func (x *AgentError) GetDeviceId() string {
|
|
if x != nil {
|
|
return x.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentError) GetJobId() string {
|
|
if x != nil {
|
|
return x.JobId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentError) GetMessage() string {
|
|
if x != nil {
|
|
return x.Message
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AgentError) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type CredentialTestResult struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
TestId string `protobuf:"bytes,1,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"`
|
|
Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
|
|
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` // Empty if success
|
|
SystemDescription string `protobuf:"bytes,4,opt,name=system_description,json=systemDescription,proto3" json:"system_description,omitempty"` // sysDescr.0 value if success
|
|
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CredentialTestResult) Reset() {
|
|
*x = CredentialTestResult{}
|
|
mi := &file_proto_agent_proto_msgTypes[26]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CredentialTestResult) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CredentialTestResult) ProtoMessage() {}
|
|
|
|
func (x *CredentialTestResult) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[26]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CredentialTestResult.ProtoReflect.Descriptor instead.
|
|
func (*CredentialTestResult) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{26}
|
|
}
|
|
|
|
func (x *CredentialTestResult) GetTestId() string {
|
|
if x != nil {
|
|
return x.TestId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CredentialTestResult) GetSuccess() bool {
|
|
if x != nil {
|
|
return x.Success
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *CredentialTestResult) GetErrorMessage() string {
|
|
if x != nil {
|
|
return x.ErrorMessage
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CredentialTestResult) GetSystemDescription() string {
|
|
if x != nil {
|
|
return x.SystemDescription
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CredentialTestResult) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type MikrotikDevice struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
|
|
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
|
|
Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
|
|
Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
|
|
UseSsl bool `protobuf:"varint,5,opt,name=use_ssl,json=useSsl,proto3" json:"use_ssl,omitempty"`
|
|
SshPort uint32 `protobuf:"varint,6,opt,name=ssh_port,json=sshPort,proto3" json:"ssh_port,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MikrotikDevice) Reset() {
|
|
*x = MikrotikDevice{}
|
|
mi := &file_proto_agent_proto_msgTypes[27]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MikrotikDevice) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MikrotikDevice) ProtoMessage() {}
|
|
|
|
func (x *MikrotikDevice) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[27]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MikrotikDevice.ProtoReflect.Descriptor instead.
|
|
func (*MikrotikDevice) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{27}
|
|
}
|
|
|
|
func (x *MikrotikDevice) GetIp() string {
|
|
if x != nil {
|
|
return x.Ip
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikDevice) GetPort() uint32 {
|
|
if x != nil {
|
|
return x.Port
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *MikrotikDevice) GetUsername() string {
|
|
if x != nil {
|
|
return x.Username
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikDevice) GetPassword() string {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikDevice) GetUseSsl() bool {
|
|
if x != nil {
|
|
return x.UseSsl
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *MikrotikDevice) GetSshPort() uint32 {
|
|
if x != nil {
|
|
return x.SshPort
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type MikrotikCommand struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
|
|
Args map[string]string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MikrotikCommand) Reset() {
|
|
*x = MikrotikCommand{}
|
|
mi := &file_proto_agent_proto_msgTypes[28]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MikrotikCommand) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MikrotikCommand) ProtoMessage() {}
|
|
|
|
func (x *MikrotikCommand) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[28]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MikrotikCommand.ProtoReflect.Descriptor instead.
|
|
func (*MikrotikCommand) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{28}
|
|
}
|
|
|
|
func (x *MikrotikCommand) GetCommand() string {
|
|
if x != nil {
|
|
return x.Command
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikCommand) GetArgs() map[string]string {
|
|
if x != nil {
|
|
return x.Args
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type MikrotikResult struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
|
|
JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
|
|
Sentences []*MikrotikSentence `protobuf:"bytes,3,rep,name=sentences,proto3" json:"sentences,omitempty"`
|
|
Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MikrotikResult) Reset() {
|
|
*x = MikrotikResult{}
|
|
mi := &file_proto_agent_proto_msgTypes[29]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MikrotikResult) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MikrotikResult) ProtoMessage() {}
|
|
|
|
func (x *MikrotikResult) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[29]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MikrotikResult.ProtoReflect.Descriptor instead.
|
|
func (*MikrotikResult) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{29}
|
|
}
|
|
|
|
func (x *MikrotikResult) GetDeviceId() string {
|
|
if x != nil {
|
|
return x.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikResult) GetJobId() string {
|
|
if x != nil {
|
|
return x.JobId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikResult) GetSentences() []*MikrotikSentence {
|
|
if x != nil {
|
|
return x.Sentences
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MikrotikResult) GetError() string {
|
|
if x != nil {
|
|
return x.Error
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MikrotikResult) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type MikrotikSentence struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Attributes map[string]string `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MikrotikSentence) Reset() {
|
|
*x = MikrotikSentence{}
|
|
mi := &file_proto_agent_proto_msgTypes[30]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MikrotikSentence) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MikrotikSentence) ProtoMessage() {}
|
|
|
|
func (x *MikrotikSentence) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[30]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MikrotikSentence.ProtoReflect.Descriptor instead.
|
|
func (*MikrotikSentence) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{30}
|
|
}
|
|
|
|
func (x *MikrotikSentence) GetAttributes() map[string]string {
|
|
if x != nil {
|
|
return x.Attributes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type LldpTopologyResult struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
|
|
JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
|
|
LocalSystemName string `protobuf:"bytes,3,opt,name=local_system_name,json=localSystemName,proto3" json:"local_system_name,omitempty"`
|
|
Neighbors []*LldpNeighbor `protobuf:"bytes,4,rep,name=neighbors,proto3" json:"neighbors,omitempty"`
|
|
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LldpTopologyResult) Reset() {
|
|
*x = LldpTopologyResult{}
|
|
mi := &file_proto_agent_proto_msgTypes[31]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LldpTopologyResult) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LldpTopologyResult) ProtoMessage() {}
|
|
|
|
func (x *LldpTopologyResult) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[31]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use LldpTopologyResult.ProtoReflect.Descriptor instead.
|
|
func (*LldpTopologyResult) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{31}
|
|
}
|
|
|
|
func (x *LldpTopologyResult) GetDeviceId() string {
|
|
if x != nil {
|
|
return x.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpTopologyResult) GetJobId() string {
|
|
if x != nil {
|
|
return x.JobId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpTopologyResult) GetLocalSystemName() string {
|
|
if x != nil {
|
|
return x.LocalSystemName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpTopologyResult) GetNeighbors() []*LldpNeighbor {
|
|
if x != nil {
|
|
return x.Neighbors
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *LldpTopologyResult) GetTimestamp() int64 {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type LldpNeighbor struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
NeighborName string `protobuf:"bytes,1,opt,name=neighbor_name,json=neighborName,proto3" json:"neighbor_name,omitempty"`
|
|
LocalPort string `protobuf:"bytes,2,opt,name=local_port,json=localPort,proto3" json:"local_port,omitempty"`
|
|
RemotePort string `protobuf:"bytes,3,opt,name=remote_port,json=remotePort,proto3" json:"remote_port,omitempty"`
|
|
RemotePortId string `protobuf:"bytes,4,opt,name=remote_port_id,json=remotePortId,proto3" json:"remote_port_id,omitempty"`
|
|
ManagementAddresses []string `protobuf:"bytes,5,rep,name=management_addresses,json=managementAddresses,proto3" json:"management_addresses,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *LldpNeighbor) Reset() {
|
|
*x = LldpNeighbor{}
|
|
mi := &file_proto_agent_proto_msgTypes[32]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *LldpNeighbor) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*LldpNeighbor) ProtoMessage() {}
|
|
|
|
func (x *LldpNeighbor) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proto_agent_proto_msgTypes[32]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use LldpNeighbor.ProtoReflect.Descriptor instead.
|
|
func (*LldpNeighbor) Descriptor() ([]byte, []int) {
|
|
return file_proto_agent_proto_rawDescGZIP(), []int{32}
|
|
}
|
|
|
|
func (x *LldpNeighbor) GetNeighborName() string {
|
|
if x != nil {
|
|
return x.NeighborName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpNeighbor) GetLocalPort() string {
|
|
if x != nil {
|
|
return x.LocalPort
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpNeighbor) GetRemotePort() string {
|
|
if x != nil {
|
|
return x.RemotePort
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpNeighbor) GetRemotePortId() string {
|
|
if x != nil {
|
|
return x.RemotePortId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *LldpNeighbor) GetManagementAddresses() []string {
|
|
if x != nil {
|
|
return x.ManagementAddresses
|
|
}
|
|
return nil
|
|
}
|
|
|
|
var File_proto_agent_proto protoreflect.FileDescriptor
|
|
|
|
const file_proto_agent_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\x11proto/agent.proto\x12\x0etowerops.agent\"\xbc\x01\n" +
|
|
"\vAgentConfig\x12\x18\n" +
|
|
"\aversion\x18\x01 \x01(\tR\aversion\x122\n" +
|
|
"\x15poll_interval_seconds\x18\x02 \x01(\rR\x13pollIntervalSeconds\x120\n" +
|
|
"\adevices\x18\x03 \x03(\v2\x16.towerops.agent.DeviceR\adevices\x12-\n" +
|
|
"\x06checks\x18\x04 \x03(\v2\x15.towerops.agent.CheckR\x06checks\"\x81\x03\n" +
|
|
"\x06Device\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
|
|
"\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n" +
|
|
"\n" +
|
|
"ip_address\x18\x03 \x01(\tR\tipAddress\x12.\n" +
|
|
"\x04snmp\x18\x04 \x01(\v2\x1a.towerops.agent.SnmpConfigR\x04snmp\x122\n" +
|
|
"\x15poll_interval_seconds\x18\x05 \x01(\rR\x13pollIntervalSeconds\x120\n" +
|
|
"\asensors\x18\x06 \x03(\v2\x16.towerops.agent.SensorR\asensors\x129\n" +
|
|
"\n" +
|
|
"interfaces\x18\a \x03(\v2\x19.towerops.agent.InterfaceR\n" +
|
|
"interfaces\x12-\n" +
|
|
"\x12monitoring_enabled\x18\b \x01(\bR\x11monitoringEnabled\x124\n" +
|
|
"\x16check_interval_seconds\x18\t \x01(\rR\x14checkIntervalSeconds\"\x90\x01\n" +
|
|
"\n" +
|
|
"SnmpConfig\x12\x18\n" +
|
|
"\aenabled\x18\x01 \x01(\bR\aenabled\x12\x18\n" +
|
|
"\aversion\x18\x02 \x01(\tR\aversion\x12\x1c\n" +
|
|
"\tcommunity\x18\x03 \x01(\tR\tcommunity\x12\x12\n" +
|
|
"\x04port\x18\x04 \x01(\rR\x04port\x12\x1c\n" +
|
|
"\ttransport\x18\x05 \x01(\tR\ttransport\"\xeb\x01\n" +
|
|
"\x06Sensor\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
|
|
"\x04type\x18\x02 \x01(\tR\x04type\x12\x10\n" +
|
|
"\x03oid\x18\x03 \x01(\tR\x03oid\x12\x18\n" +
|
|
"\adivisor\x18\x04 \x01(\x01R\adivisor\x12\x12\n" +
|
|
"\x04unit\x18\x05 \x01(\tR\x04unit\x12@\n" +
|
|
"\bmetadata\x18\x06 \x03(\v2$.towerops.agent.Sensor.MetadataEntryR\bmetadata\x1a;\n" +
|
|
"\rMetadataEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"O\n" +
|
|
"\tInterface\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x19\n" +
|
|
"\bif_index\x18\x02 \x01(\rR\aifIndex\x12\x17\n" +
|
|
"\aif_name\x18\x03 \x01(\tR\x06ifName\"?\n" +
|
|
"\vMetricBatch\x120\n" +
|
|
"\ametrics\x18\x01 \x03(\v2\x16.towerops.agent.MetricR\ametrics\"\x8b\x03\n" +
|
|
"\x06Metric\x12F\n" +
|
|
"\x0esensor_reading\x18\x01 \x01(\v2\x1d.towerops.agent.SensorReadingH\x00R\rsensorReading\x12F\n" +
|
|
"\x0einterface_stat\x18\x02 \x01(\v2\x1d.towerops.agent.InterfaceStatH\x00R\rinterfaceStat\x12R\n" +
|
|
"\x12neighbor_discovery\x18\x03 \x01(\v2!.towerops.agent.NeighborDiscoveryH\x00R\x11neighborDiscovery\x12L\n" +
|
|
"\x10monitoring_check\x18\x04 \x01(\v2\x1f.towerops.agent.MonitoringCheckH\x00R\x0fmonitoringCheck\x12@\n" +
|
|
"\fcheck_result\x18\x05 \x01(\v2\x1b.towerops.agent.CheckResultH\x00R\vcheckResultB\r\n" +
|
|
"\vmetric_type\"x\n" +
|
|
"\rSensorReading\x12\x1b\n" +
|
|
"\tsensor_id\x18\x01 \x01(\tR\bsensorId\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\x01R\x05value\x12\x16\n" +
|
|
"\x06status\x18\x03 \x01(\tR\x06status\x12\x1c\n" +
|
|
"\ttimestamp\x18\x04 \x01(\x03R\ttimestamp\"\xaa\x02\n" +
|
|
"\rInterfaceStat\x12!\n" +
|
|
"\finterface_id\x18\x01 \x01(\tR\vinterfaceId\x12 \n" +
|
|
"\fif_in_octets\x18\x02 \x01(\x03R\n" +
|
|
"ifInOctets\x12\"\n" +
|
|
"\rif_out_octets\x18\x03 \x01(\x03R\vifOutOctets\x12 \n" +
|
|
"\fif_in_errors\x18\x04 \x01(\x03R\n" +
|
|
"ifInErrors\x12\"\n" +
|
|
"\rif_out_errors\x18\x05 \x01(\x03R\vifOutErrors\x12$\n" +
|
|
"\x0eif_in_discards\x18\x06 \x01(\x03R\fifInDiscards\x12&\n" +
|
|
"\x0fif_out_discards\x18\a \x01(\x03R\rifOutDiscards\x12\x1c\n" +
|
|
"\ttimestamp\x18\b \x01(\x03R\ttimestamp\"\xe5\x03\n" +
|
|
"\x11NeighborDiscovery\x12!\n" +
|
|
"\finterface_id\x18\x01 \x01(\tR\vinterfaceId\x12\x1a\n" +
|
|
"\bprotocol\x18\x02 \x01(\tR\bprotocol\x12*\n" +
|
|
"\x11remote_chassis_id\x18\x03 \x01(\tR\x0fremoteChassisId\x12,\n" +
|
|
"\x12remote_system_name\x18\x04 \x01(\tR\x10remoteSystemName\x12:\n" +
|
|
"\x19remote_system_description\x18\x05 \x01(\tR\x17remoteSystemDescription\x12'\n" +
|
|
"\x0fremote_platform\x18\x06 \x01(\tR\x0eremotePlatform\x12$\n" +
|
|
"\x0eremote_port_id\x18\a \x01(\tR\fremotePortId\x126\n" +
|
|
"\x17remote_port_description\x18\b \x01(\tR\x15remotePortDescription\x12%\n" +
|
|
"\x0eremote_address\x18\t \x01(\tR\rremoteAddress\x12/\n" +
|
|
"\x13remote_capabilities\x18\n" +
|
|
" \x03(\tR\x12remoteCapabilities\x12\x1c\n" +
|
|
"\ttimestamp\x18\v \x01(\x03R\ttimestamp\"\x8e\x01\n" +
|
|
"\x0fMonitoringCheck\x12\x1b\n" +
|
|
"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x16\n" +
|
|
"\x06status\x18\x02 \x01(\tR\x06status\x12(\n" +
|
|
"\x10response_time_ms\x18\x03 \x01(\x01R\x0eresponseTimeMs\x12\x1c\n" +
|
|
"\ttimestamp\x18\x04 \x01(\x03R\ttimestamp\"\xa9\x02\n" +
|
|
"\x05Check\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n" +
|
|
"\n" +
|
|
"check_type\x18\x02 \x01(\tR\tcheckType\x12)\n" +
|
|
"\x10interval_seconds\x18\x03 \x01(\rR\x0fintervalSeconds\x12\x1d\n" +
|
|
"\n" +
|
|
"timeout_ms\x18\x04 \x01(\rR\ttimeoutMs\x125\n" +
|
|
"\x04http\x18\x05 \x01(\v2\x1f.towerops.agent.HttpCheckConfigH\x00R\x04http\x122\n" +
|
|
"\x03tcp\x18\x06 \x01(\v2\x1e.towerops.agent.TcpCheckConfigH\x00R\x03tcp\x122\n" +
|
|
"\x03dns\x18\a \x01(\v2\x1e.towerops.agent.DnsCheckConfigH\x00R\x03dnsB\b\n" +
|
|
"\x06config\"\xdc\x02\n" +
|
|
"\x0fHttpCheckConfig\x12\x10\n" +
|
|
"\x03url\x18\x01 \x01(\tR\x03url\x12\x16\n" +
|
|
"\x06method\x18\x02 \x01(\tR\x06method\x12'\n" +
|
|
"\x0fexpected_status\x18\x03 \x01(\rR\x0eexpectedStatus\x12\x1d\n" +
|
|
"\n" +
|
|
"verify_ssl\x18\x04 \x01(\bR\tverifySsl\x12F\n" +
|
|
"\aheaders\x18\x05 \x03(\v2,.towerops.agent.HttpCheckConfig.HeadersEntryR\aheaders\x12\x12\n" +
|
|
"\x04body\x18\x06 \x01(\tR\x04body\x12\x14\n" +
|
|
"\x05regex\x18\a \x01(\tR\x05regex\x12)\n" +
|
|
"\x10follow_redirects\x18\b \x01(\bR\x0ffollowRedirects\x1a:\n" +
|
|
"\fHeadersEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"d\n" +
|
|
"\x0eTcpCheckConfig\x12\x12\n" +
|
|
"\x04host\x18\x01 \x01(\tR\x04host\x12\x12\n" +
|
|
"\x04port\x18\x02 \x01(\rR\x04port\x12\x12\n" +
|
|
"\x04send\x18\x03 \x01(\tR\x04send\x12\x16\n" +
|
|
"\x06expect\x18\x04 \x01(\tR\x06expect\"\x81\x01\n" +
|
|
"\x0eDnsCheckConfig\x12\x1a\n" +
|
|
"\bhostname\x18\x01 \x01(\tR\bhostname\x12\x16\n" +
|
|
"\x06server\x18\x02 \x01(\tR\x06server\x12\x1f\n" +
|
|
"\vrecord_type\x18\x03 \x01(\tR\n" +
|
|
"recordType\x12\x1a\n" +
|
|
"\bexpected\x18\x04 \x01(\tR\bexpected\"\xa0\x01\n" +
|
|
"\vCheckResult\x12\x19\n" +
|
|
"\bcheck_id\x18\x01 \x01(\tR\acheckId\x12\x16\n" +
|
|
"\x06status\x18\x02 \x01(\rR\x06status\x12\x16\n" +
|
|
"\x06output\x18\x03 \x01(\tR\x06output\x12(\n" +
|
|
"\x10response_time_ms\x18\x04 \x01(\x01R\x0eresponseTimeMs\x12\x1c\n" +
|
|
"\ttimestamp\x18\x05 \x01(\x03R\ttimestamp\":\n" +
|
|
"\tCheckList\x12-\n" +
|
|
"\x06checks\x18\x01 \x03(\v2\x15.towerops.agent.CheckR\x06checks\"p\n" +
|
|
"\x11HeartbeatMetadata\x12\x18\n" +
|
|
"\aversion\x18\x01 \x01(\tR\aversion\x12\x1a\n" +
|
|
"\bhostname\x18\x02 \x01(\tR\bhostname\x12%\n" +
|
|
"\x0euptime_seconds\x18\x03 \x01(\x04R\ruptimeSeconds\"+\n" +
|
|
"\x11HeartbeatResponse\x12\x16\n" +
|
|
"\x06status\x18\x01 \x01(\tR\x06status\"<\n" +
|
|
"\fAgentJobList\x12,\n" +
|
|
"\x04jobs\x18\x01 \x03(\v2\x18.towerops.agent.AgentJobR\x04jobs\"\xfb\x02\n" +
|
|
"\bAgentJob\x12\x15\n" +
|
|
"\x06job_id\x18\x01 \x01(\tR\x05jobId\x122\n" +
|
|
"\bjob_type\x18\x02 \x01(\x0e2\x17.towerops.agent.JobTypeR\ajobType\x12\x1b\n" +
|
|
"\tdevice_id\x18\x03 \x01(\tR\bdeviceId\x12;\n" +
|
|
"\vsnmp_device\x18\x04 \x01(\v2\x1a.towerops.agent.SnmpDeviceR\n" +
|
|
"snmpDevice\x123\n" +
|
|
"\aqueries\x18\x05 \x03(\v2\x19.towerops.agent.SnmpQueryR\aqueries\x12G\n" +
|
|
"\x0fmikrotik_device\x18\x06 \x01(\v2\x1e.towerops.agent.MikrotikDeviceR\x0emikrotikDevice\x12L\n" +
|
|
"\x11mikrotik_commands\x18\a \x03(\v2\x1f.towerops.agent.MikrotikCommandR\x10mikrotikCommands\"\xfb\x02\n" +
|
|
"\n" +
|
|
"SnmpDevice\x12\x0e\n" +
|
|
"\x02ip\x18\x01 \x01(\tR\x02ip\x12\x1c\n" +
|
|
"\tcommunity\x18\x02 \x01(\tR\tcommunity\x12\x18\n" +
|
|
"\aversion\x18\x03 \x01(\tR\aversion\x12\x12\n" +
|
|
"\x04port\x18\x04 \x01(\rR\x04port\x12*\n" +
|
|
"\x11v3_security_level\x18\x05 \x01(\tR\x0fv3SecurityLevel\x12\x1f\n" +
|
|
"\vv3_username\x18\x06 \x01(\tR\n" +
|
|
"v3Username\x12(\n" +
|
|
"\x10v3_auth_protocol\x18\a \x01(\tR\x0ev3AuthProtocol\x12(\n" +
|
|
"\x10v3_auth_password\x18\b \x01(\tR\x0ev3AuthPassword\x12(\n" +
|
|
"\x10v3_priv_protocol\x18\t \x01(\tR\x0ev3PrivProtocol\x12(\n" +
|
|
"\x10v3_priv_password\x18\n" +
|
|
" \x01(\tR\x0ev3PrivPassword\x12\x1c\n" +
|
|
"\ttransport\x18\v \x01(\tR\ttransport\"Y\n" +
|
|
"\tSnmpQuery\x128\n" +
|
|
"\n" +
|
|
"query_type\x18\x01 \x01(\x0e2\x19.towerops.agent.QueryTypeR\tqueryType\x12\x12\n" +
|
|
"\x04oids\x18\x02 \x03(\tR\x04oids\"\x9a\x02\n" +
|
|
"\n" +
|
|
"SnmpResult\x12\x1b\n" +
|
|
"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x122\n" +
|
|
"\bjob_type\x18\x02 \x01(\x0e2\x17.towerops.agent.JobTypeR\ajobType\x12H\n" +
|
|
"\n" +
|
|
"oid_values\x18\x03 \x03(\v2).towerops.agent.SnmpResult.OidValuesEntryR\toidValues\x12\x1c\n" +
|
|
"\ttimestamp\x18\x04 \x01(\x03R\ttimestamp\x12\x15\n" +
|
|
"\x06job_id\x18\x05 \x01(\tR\x05jobId\x1a<\n" +
|
|
"\x0eOidValuesEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa0\x01\n" +
|
|
"\x0eAgentHeartbeat\x12\x18\n" +
|
|
"\aversion\x18\x01 \x01(\tR\aversion\x12\x1a\n" +
|
|
"\bhostname\x18\x02 \x01(\tR\bhostname\x12%\n" +
|
|
"\x0euptime_seconds\x18\x03 \x01(\x04R\ruptimeSeconds\x12\x1d\n" +
|
|
"\n" +
|
|
"ip_address\x18\x04 \x01(\tR\tipAddress\x12\x12\n" +
|
|
"\x04arch\x18\x05 \x01(\tR\x04arch\"x\n" +
|
|
"\n" +
|
|
"AgentError\x12\x1b\n" +
|
|
"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x15\n" +
|
|
"\x06job_id\x18\x02 \x01(\tR\x05jobId\x12\x18\n" +
|
|
"\amessage\x18\x03 \x01(\tR\amessage\x12\x1c\n" +
|
|
"\ttimestamp\x18\x04 \x01(\x03R\ttimestamp\"\xbb\x01\n" +
|
|
"\x14CredentialTestResult\x12\x17\n" +
|
|
"\atest_id\x18\x01 \x01(\tR\x06testId\x12\x18\n" +
|
|
"\asuccess\x18\x02 \x01(\bR\asuccess\x12#\n" +
|
|
"\rerror_message\x18\x03 \x01(\tR\ferrorMessage\x12-\n" +
|
|
"\x12system_description\x18\x04 \x01(\tR\x11systemDescription\x12\x1c\n" +
|
|
"\ttimestamp\x18\x05 \x01(\x03R\ttimestamp\"\xa0\x01\n" +
|
|
"\x0eMikrotikDevice\x12\x0e\n" +
|
|
"\x02ip\x18\x01 \x01(\tR\x02ip\x12\x12\n" +
|
|
"\x04port\x18\x02 \x01(\rR\x04port\x12\x1a\n" +
|
|
"\busername\x18\x03 \x01(\tR\busername\x12\x1a\n" +
|
|
"\bpassword\x18\x04 \x01(\tR\bpassword\x12\x17\n" +
|
|
"\ause_ssl\x18\x05 \x01(\bR\x06useSsl\x12\x19\n" +
|
|
"\bssh_port\x18\x06 \x01(\rR\asshPort\"\xa3\x01\n" +
|
|
"\x0fMikrotikCommand\x12\x18\n" +
|
|
"\acommand\x18\x01 \x01(\tR\acommand\x12=\n" +
|
|
"\x04args\x18\x02 \x03(\v2).towerops.agent.MikrotikCommand.ArgsEntryR\x04args\x1a7\n" +
|
|
"\tArgsEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb8\x01\n" +
|
|
"\x0eMikrotikResult\x12\x1b\n" +
|
|
"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x15\n" +
|
|
"\x06job_id\x18\x02 \x01(\tR\x05jobId\x12>\n" +
|
|
"\tsentences\x18\x03 \x03(\v2 .towerops.agent.MikrotikSentenceR\tsentences\x12\x14\n" +
|
|
"\x05error\x18\x04 \x01(\tR\x05error\x12\x1c\n" +
|
|
"\ttimestamp\x18\x05 \x01(\x03R\ttimestamp\"\xa3\x01\n" +
|
|
"\x10MikrotikSentence\x12P\n" +
|
|
"\n" +
|
|
"attributes\x18\x01 \x03(\v20.towerops.agent.MikrotikSentence.AttributesEntryR\n" +
|
|
"attributes\x1a=\n" +
|
|
"\x0fAttributesEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xce\x01\n" +
|
|
"\x12LldpTopologyResult\x12\x1b\n" +
|
|
"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x15\n" +
|
|
"\x06job_id\x18\x02 \x01(\tR\x05jobId\x12*\n" +
|
|
"\x11local_system_name\x18\x03 \x01(\tR\x0flocalSystemName\x12:\n" +
|
|
"\tneighbors\x18\x04 \x03(\v2\x1c.towerops.agent.LldpNeighborR\tneighbors\x12\x1c\n" +
|
|
"\ttimestamp\x18\x05 \x01(\x03R\ttimestamp\"\xcc\x01\n" +
|
|
"\fLldpNeighbor\x12#\n" +
|
|
"\rneighbor_name\x18\x01 \x01(\tR\fneighborName\x12\x1d\n" +
|
|
"\n" +
|
|
"local_port\x18\x02 \x01(\tR\tlocalPort\x12\x1f\n" +
|
|
"\vremote_port\x18\x03 \x01(\tR\n" +
|
|
"remotePort\x12$\n" +
|
|
"\x0eremote_port_id\x18\x04 \x01(\tR\fremotePortId\x121\n" +
|
|
"\x14management_addresses\x18\x05 \x03(\tR\x13managementAddresses*b\n" +
|
|
"\aJobType\x12\f\n" +
|
|
"\bDISCOVER\x10\x00\x12\b\n" +
|
|
"\x04POLL\x10\x01\x12\f\n" +
|
|
"\bMIKROTIK\x10\x02\x12\x14\n" +
|
|
"\x10TEST_CREDENTIALS\x10\x03\x12\b\n" +
|
|
"\x04PING\x10\x04\x12\x11\n" +
|
|
"\rLLDP_TOPOLOGY\x10\x05*\x1e\n" +
|
|
"\tQueryType\x12\a\n" +
|
|
"\x03GET\x10\x00\x12\b\n" +
|
|
"\x04WALK\x10\x01B+Z)github.com/towerops-app/towerops-agent/pbb\x06proto3"
|
|
|
|
var (
|
|
file_proto_agent_proto_rawDescOnce sync.Once
|
|
file_proto_agent_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_proto_agent_proto_rawDescGZIP() []byte {
|
|
file_proto_agent_proto_rawDescOnce.Do(func() {
|
|
file_proto_agent_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_agent_proto_rawDesc), len(file_proto_agent_proto_rawDesc)))
|
|
})
|
|
return file_proto_agent_proto_rawDescData
|
|
}
|
|
|
|
var file_proto_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
|
var file_proto_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
|
|
var file_proto_agent_proto_goTypes = []any{
|
|
(JobType)(0), // 0: towerops.agent.JobType
|
|
(QueryType)(0), // 1: towerops.agent.QueryType
|
|
(*AgentConfig)(nil), // 2: towerops.agent.AgentConfig
|
|
(*Device)(nil), // 3: towerops.agent.Device
|
|
(*SnmpConfig)(nil), // 4: towerops.agent.SnmpConfig
|
|
(*Sensor)(nil), // 5: towerops.agent.Sensor
|
|
(*Interface)(nil), // 6: towerops.agent.Interface
|
|
(*MetricBatch)(nil), // 7: towerops.agent.MetricBatch
|
|
(*Metric)(nil), // 8: towerops.agent.Metric
|
|
(*SensorReading)(nil), // 9: towerops.agent.SensorReading
|
|
(*InterfaceStat)(nil), // 10: towerops.agent.InterfaceStat
|
|
(*NeighborDiscovery)(nil), // 11: towerops.agent.NeighborDiscovery
|
|
(*MonitoringCheck)(nil), // 12: towerops.agent.MonitoringCheck
|
|
(*Check)(nil), // 13: towerops.agent.Check
|
|
(*HttpCheckConfig)(nil), // 14: towerops.agent.HttpCheckConfig
|
|
(*TcpCheckConfig)(nil), // 15: towerops.agent.TcpCheckConfig
|
|
(*DnsCheckConfig)(nil), // 16: towerops.agent.DnsCheckConfig
|
|
(*CheckResult)(nil), // 17: towerops.agent.CheckResult
|
|
(*CheckList)(nil), // 18: towerops.agent.CheckList
|
|
(*HeartbeatMetadata)(nil), // 19: towerops.agent.HeartbeatMetadata
|
|
(*HeartbeatResponse)(nil), // 20: towerops.agent.HeartbeatResponse
|
|
(*AgentJobList)(nil), // 21: towerops.agent.AgentJobList
|
|
(*AgentJob)(nil), // 22: towerops.agent.AgentJob
|
|
(*SnmpDevice)(nil), // 23: towerops.agent.SnmpDevice
|
|
(*SnmpQuery)(nil), // 24: towerops.agent.SnmpQuery
|
|
(*SnmpResult)(nil), // 25: towerops.agent.SnmpResult
|
|
(*AgentHeartbeat)(nil), // 26: towerops.agent.AgentHeartbeat
|
|
(*AgentError)(nil), // 27: towerops.agent.AgentError
|
|
(*CredentialTestResult)(nil), // 28: towerops.agent.CredentialTestResult
|
|
(*MikrotikDevice)(nil), // 29: towerops.agent.MikrotikDevice
|
|
(*MikrotikCommand)(nil), // 30: towerops.agent.MikrotikCommand
|
|
(*MikrotikResult)(nil), // 31: towerops.agent.MikrotikResult
|
|
(*MikrotikSentence)(nil), // 32: towerops.agent.MikrotikSentence
|
|
(*LldpTopologyResult)(nil), // 33: towerops.agent.LldpTopologyResult
|
|
(*LldpNeighbor)(nil), // 34: towerops.agent.LldpNeighbor
|
|
nil, // 35: towerops.agent.Sensor.MetadataEntry
|
|
nil, // 36: towerops.agent.HttpCheckConfig.HeadersEntry
|
|
nil, // 37: towerops.agent.SnmpResult.OidValuesEntry
|
|
nil, // 38: towerops.agent.MikrotikCommand.ArgsEntry
|
|
nil, // 39: towerops.agent.MikrotikSentence.AttributesEntry
|
|
}
|
|
var file_proto_agent_proto_depIdxs = []int32{
|
|
3, // 0: towerops.agent.AgentConfig.devices:type_name -> towerops.agent.Device
|
|
13, // 1: towerops.agent.AgentConfig.checks:type_name -> towerops.agent.Check
|
|
4, // 2: towerops.agent.Device.snmp:type_name -> towerops.agent.SnmpConfig
|
|
5, // 3: towerops.agent.Device.sensors:type_name -> towerops.agent.Sensor
|
|
6, // 4: towerops.agent.Device.interfaces:type_name -> towerops.agent.Interface
|
|
35, // 5: towerops.agent.Sensor.metadata:type_name -> towerops.agent.Sensor.MetadataEntry
|
|
8, // 6: towerops.agent.MetricBatch.metrics:type_name -> towerops.agent.Metric
|
|
9, // 7: towerops.agent.Metric.sensor_reading:type_name -> towerops.agent.SensorReading
|
|
10, // 8: towerops.agent.Metric.interface_stat:type_name -> towerops.agent.InterfaceStat
|
|
11, // 9: towerops.agent.Metric.neighbor_discovery:type_name -> towerops.agent.NeighborDiscovery
|
|
12, // 10: towerops.agent.Metric.monitoring_check:type_name -> towerops.agent.MonitoringCheck
|
|
17, // 11: towerops.agent.Metric.check_result:type_name -> towerops.agent.CheckResult
|
|
14, // 12: towerops.agent.Check.http:type_name -> towerops.agent.HttpCheckConfig
|
|
15, // 13: towerops.agent.Check.tcp:type_name -> towerops.agent.TcpCheckConfig
|
|
16, // 14: towerops.agent.Check.dns:type_name -> towerops.agent.DnsCheckConfig
|
|
36, // 15: towerops.agent.HttpCheckConfig.headers:type_name -> towerops.agent.HttpCheckConfig.HeadersEntry
|
|
13, // 16: towerops.agent.CheckList.checks:type_name -> towerops.agent.Check
|
|
22, // 17: towerops.agent.AgentJobList.jobs:type_name -> towerops.agent.AgentJob
|
|
0, // 18: towerops.agent.AgentJob.job_type:type_name -> towerops.agent.JobType
|
|
23, // 19: towerops.agent.AgentJob.snmp_device:type_name -> towerops.agent.SnmpDevice
|
|
24, // 20: towerops.agent.AgentJob.queries:type_name -> towerops.agent.SnmpQuery
|
|
29, // 21: towerops.agent.AgentJob.mikrotik_device:type_name -> towerops.agent.MikrotikDevice
|
|
30, // 22: towerops.agent.AgentJob.mikrotik_commands:type_name -> towerops.agent.MikrotikCommand
|
|
1, // 23: towerops.agent.SnmpQuery.query_type:type_name -> towerops.agent.QueryType
|
|
0, // 24: towerops.agent.SnmpResult.job_type:type_name -> towerops.agent.JobType
|
|
37, // 25: towerops.agent.SnmpResult.oid_values:type_name -> towerops.agent.SnmpResult.OidValuesEntry
|
|
38, // 26: towerops.agent.MikrotikCommand.args:type_name -> towerops.agent.MikrotikCommand.ArgsEntry
|
|
32, // 27: towerops.agent.MikrotikResult.sentences:type_name -> towerops.agent.MikrotikSentence
|
|
39, // 28: towerops.agent.MikrotikSentence.attributes:type_name -> towerops.agent.MikrotikSentence.AttributesEntry
|
|
34, // 29: towerops.agent.LldpTopologyResult.neighbors:type_name -> towerops.agent.LldpNeighbor
|
|
30, // [30:30] is the sub-list for method output_type
|
|
30, // [30:30] is the sub-list for method input_type
|
|
30, // [30:30] is the sub-list for extension type_name
|
|
30, // [30:30] is the sub-list for extension extendee
|
|
0, // [0:30] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_proto_agent_proto_init() }
|
|
func file_proto_agent_proto_init() {
|
|
if File_proto_agent_proto != nil {
|
|
return
|
|
}
|
|
file_proto_agent_proto_msgTypes[6].OneofWrappers = []any{
|
|
(*Metric_SensorReading)(nil),
|
|
(*Metric_InterfaceStat)(nil),
|
|
(*Metric_NeighborDiscovery)(nil),
|
|
(*Metric_MonitoringCheck)(nil),
|
|
(*Metric_CheckResult)(nil),
|
|
}
|
|
file_proto_agent_proto_msgTypes[11].OneofWrappers = []any{
|
|
(*Check_Http)(nil),
|
|
(*Check_Tcp)(nil),
|
|
(*Check_Dns)(nil),
|
|
}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_agent_proto_rawDesc), len(file_proto_agent_proto_rawDesc)),
|
|
NumEnums: 2,
|
|
NumMessages: 38,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_proto_agent_proto_goTypes,
|
|
DependencyIndexes: file_proto_agent_proto_depIdxs,
|
|
EnumInfos: file_proto_agent_proto_enumTypes,
|
|
MessageInfos: file_proto_agent_proto_msgTypes,
|
|
}.Build()
|
|
File_proto_agent_proto = out.File
|
|
file_proto_agent_proto_goTypes = nil
|
|
file_proto_agent_proto_depIdxs = nil
|
|
}
|