UNPKG

@stordata/vsphere-soapify

Version:

A NodeJS abstraction layer for the vSphere SOAP API

46 lines (39 loc) 1.63 kB
'use strict'; const DynamicData = require('./DynamicData'), ComputeResourceEventArgument = require('./ComputeResourceEventArgument'), DatacenterEventArgument = require('./DatacenterEventArgument'), DatastoreEventArgument = require('./DatastoreEventArgument'), DvsEventArgument = require('./DvsEventArgument'), HostEventArgument = require('./HostEventArgument'), NetworkEventArgument = require('./NetworkEventArgument'), VmEventArgument = require('./VmEventArgument'); module.exports = class Event extends DynamicData { constructor(client, source) { super(client, source); /** * Mimics what's done internally by vSphere. This is _somewhat_ documented, but still cryptic as f***. * We use this to avoid mapping thousands of intermediate classes to strongly type all possible event subclasses. * * @see https://github.com/lamw/vcenter-event-mapping/blob/master/vsphere-6.7u3.md * @see https://developer.broadcom.com/xapis/vsphere-web-services-api/7.0/vim.event.EventFilterSpec.html */ this.eventTypeId ??= this.client.getParser().extractType(source); } static mappings() { return { chainId: 'xsd:int', changeTag: 'xsd:string', computeResource: ComputeResourceEventArgument, createdTime: 'xsd:dateTime', datacenter: DatacenterEventArgument, ds: DatastoreEventArgument, dvs: DvsEventArgument, fullFormattedMessage: 'xsd:string', host: HostEventArgument, key: 'xsd:int', net: NetworkEventArgument, userName: 'xsd:string', vm: VmEventArgument }; } };