UNPKG

@xompass/sdk-cloud-api

Version:

Xompass Client for cloud-api

320 lines (314 loc) 7.63 kB
import {ModelDefinition} from './BaseModels'; import {Log} from './Log'; import {Asset} from './Asset'; import {Dataset} from './Dataset'; import {Alert} from './Alert'; import {AlertHistory} from './AlertHistory'; import {RateLimit} from './RateLimit'; import {AssetState} from './AssetState'; import {SensorAssetState} from './SensorAssetState'; import {SensorTemplate} from './SensorTemplate'; import {SensorUptime} from './SensorUptime'; import {SensorUptimeCollector} from './SensorUptimeCollector'; import {Summary} from './Summary'; declare var Object: any; export interface SensorInterface { type: string; name?: string; description?: string; relativeId: string; enabled?: boolean; unit?: string; parameters?: any; triggers?: any; extendedProperties?: any; healthcheck?: any; created?: Date; modified?: Date; deleted?: Date; id?: any; assetId?: any; _lastData?: any; _rateLimit?: any; templateId?: any; _token?: any; trackingLogs?: Log[]; asset?: Asset; datasets?: Dataset[]; alerts?: Alert[]; alertHistory?: AlertHistory[]; lastData?: any[]; rateLimit?: RateLimit[]; assetStates?: AssetState[]; states?: SensorAssetState[]; template?: SensorTemplate; uptime?: SensorUptime[]; uptimeCollectors?: SensorUptimeCollector[]; summaries?: Summary[]; token?: any[]; } export class Sensor implements SensorInterface { type: string; name: string; description: string; relativeId: string; enabled: boolean = true; unit: string; parameters: any; triggers: any; extendedProperties: any; healthcheck: any; created: Date; modified: Date; deleted: Date; id: any; assetId: any; _lastData: any; _rateLimit: any; templateId: any; _token: any; trackingLogs?: Log[]; asset?: Asset; datasets?: Dataset[]; alerts?: Alert[]; alertHistory?: AlertHistory[]; lastData?: any[]; rateLimit?: RateLimit[]; assetStates?: AssetState[]; states?: SensorAssetState[]; template?: SensorTemplate; uptime?: SensorUptime[]; uptimeCollectors?: SensorUptimeCollector[]; summaries?: Summary[]; token?: any[]; constructor(data?: SensorInterface) { Object.assign(this, data); } /** * The name of the model represented by this $resource, * i.e. `Sensor`. */ public static getModelName(): string { return 'Sensor'; } /** * @method factory * @author Jonathan Casarrubias * @license MIT * This method creates an instance of Sensor for dynamic purposes. */ public static factory(data: SensorInterface): Sensor{ return new Sensor(data); } /** * @method getModelDefinition * @author Julien Ledun * @license MIT * This method returns an object that represents some of the model * definitions. */ public static getModelDefinition(): ModelDefinition { return { name: 'Sensor', plural: 'Sensors', path: 'Sensors', idName: 'id', properties: { type: { name: 'type', type: 'string' }, name: { name: 'name', type: 'string' }, description: { name: 'description', type: 'string' }, relativeId: { name: 'relativeId', type: 'string' }, enabled: { name: 'enabled', type: 'boolean', default: true }, unit: { name: 'unit', type: 'string' }, parameters: { name: 'parameters', type: 'any' }, triggers: { name: 'triggers', type: 'any' }, extendedProperties: { name: 'extendedProperties', type: 'any' }, healthcheck: { name: 'healthcheck', type: 'any' }, created: { name: 'created', type: 'Date' }, modified: { name: 'modified', type: 'Date' }, deleted: { name: 'deleted', type: 'Date', default: undefined }, id: { name: 'id', type: 'any' }, assetId: { name: 'assetId', type: 'any' }, _lastData: { name: '_lastData', type: 'any' }, _rateLimit: { name: '_rateLimit', type: 'any' }, templateId: { name: 'templateId', type: 'any' }, _token: { name: '_token', type: 'any' }, }, relations: { trackingLogs: { name: 'trackingLogs', type: 'Log[]', model: 'Log', relationType: 'hasMany', keyFrom: 'id', keyTo: 'trackingModelId' }, asset: { name: 'asset', type: 'Asset', model: 'Asset', relationType: 'belongsTo', keyFrom: 'assetId', keyTo: 'id' }, datasets: { name: 'datasets', type: 'Dataset[]', model: 'Dataset', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, alerts: { name: 'alerts', type: 'Alert[]', model: 'Alert', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, alertHistory: { name: 'alertHistory', type: 'AlertHistory[]', model: 'AlertHistory', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, lastData: { name: 'lastData', type: 'any[]', model: '', relationType: 'embedsOne', keyFrom: '_lastData', keyTo: 'id' }, rateLimit: { name: 'rateLimit', type: 'RateLimit[]', model: 'RateLimit', relationType: 'embedsOne', keyFrom: '_rateLimit', keyTo: 'id' }, assetStates: { name: 'assetStates', type: 'AssetState[]', model: 'AssetState', relationType: 'hasMany', modelThrough: 'SensorAssetState', keyThrough: 'assetStateId', keyFrom: 'id', keyTo: 'sensorId' }, states: { name: 'states', type: 'SensorAssetState[]', model: 'SensorAssetState', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, template: { name: 'template', type: 'SensorTemplate', model: 'SensorTemplate', relationType: 'belongsTo', keyFrom: 'templateId', keyTo: 'id' }, uptime: { name: 'uptime', type: 'SensorUptime[]', model: 'SensorUptime', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, uptimeCollectors: { name: 'uptimeCollectors', type: 'SensorUptimeCollector[]', model: 'SensorUptimeCollector', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, summaries: { name: 'summaries', type: 'Summary[]', model: 'Summary', relationType: 'hasMany', keyFrom: 'id', keyTo: 'sensorId' }, token: { name: 'token', type: 'any[]', model: '', relationType: 'embedsOne', keyFrom: '_token', keyTo: 'id' }, } }; } }