opennms
Version:
Client API for the OpenNMS network monitoring platform
118 lines (93 loc) • 3.26 kB
text/typescript
import {Moment} from 'moment';
import {IHasUrlValue} from '../api/IHasUrlValue';
import { Util } from '../internal/Util';
import {OnmsCollectType} from './OnmsCollectType';
import {OnmsSnmpStatusType} from './OnmsSnmpStatusType';
import {PhysAddr} from './PhysAddr';
/**
* Represents an OpenNMS SNMP interface.
* @category Model
*/
export class OnmsSnmpInterface implements IHasUrlValue {
/** the interface ID */
public id?: number;
/** the physical (MAC) address of the interface */
public physAddr?: PhysAddr;
/** the node associated with this interface */
public node?: any;
/** the SNMP interface index */
public ifIndex?: number;
/** the description of the interface */
public ifDescr?: string;
/** the type of interface */
public ifType?: number;
/** the name of the interface */
public ifName?: string;
/** the speed of the interface */
public ifSpeed?: number;
/** the administrative status of the interface */
public ifAdminStatus?: OnmsSnmpStatusType;
/** the operator status of the interface */
public ifOperStatus?: OnmsSnmpStatusType;
/** the alias of the interface */
public ifAlias?: string;
/** the last time the SNMP interface was provisioned */
public lastCapsdPoll?: Moment;
/** whether the SNMP interface will be collected */
public collect?: OnmsCollectType;
/** whether the interface is set to poll */
public poll?: boolean;
/** the last time the SNMP interface was polled */
public lastSnmpPoll?: Moment;
/** The node associated to this snmpInterface */
public nodeId?: number;
/** @inheritdoc */
public get urlValue() {
return String(this.id);
}
/**
* create an SNMP interface object from a JSON object
* @hidden
*/
public static fromData(data: any): OnmsSnmpInterface {
const iface = new OnmsSnmpInterface();
iface.id = Util.toNumber(data.id);
iface.ifIndex = Util.toNumber(data.ifIndex);
iface.ifDescr = data.ifDescr;
iface.ifType = Util.toNumber(data.ifType);
iface.ifName = data.ifName;
iface.ifSpeed = Util.toNumber(data.ifSpeed);
iface.ifAdminStatus = OnmsSnmpStatusType.forId(Util.toNumber(data.ifAdminStatus));
iface.ifOperStatus = OnmsSnmpStatusType.forId(Util.toNumber(data.ifOperStatus));
iface.ifAlias = data.ifAlias;
iface.lastCapsdPoll = Util.toDate(data.lastCapsdPoll);
iface.collect = OnmsCollectType.forId(data.collectFlag);
iface.poll = data.poll;
iface.lastSnmpPoll = Util.toDate(data.lastSnmpPoll);
iface.nodeId = Util.toNumber(data.nodeId);
if (data.physAddr) {
iface.physAddr = new PhysAddr(data.physAddr);
}
return iface;
}
/** convert to JSON object */
public toJSON() {
return {
id: this.id,
ifIndex: this.ifIndex,
ifDescr: this.ifDescr,
ifType: this.ifType,
ifName: this.ifName,
ifSpeed: this.ifSpeed,
ifAdminStatus: this.ifAdminStatus?.toJSON(),
ifOperStatus: this.ifOperStatus?.toJSON(),
ifAlias: this.ifAlias,
lastCapsdPoll: this.lastCapsdPoll?.valueOf(),
collect: this.collect?.toJSON(),
poll: this.poll,
lastSnmpPoll: this.lastSnmpPoll?.toJSON(),
physAddr: this.physAddr?.urlValue,
nodeId: this.nodeId
}
}
}