UNPKG

@xompass/sdk-cloud-api

Version:

Xompass Client for cloud-api

301 lines (295 loc) 7.65 kB
import {ModelDefinition} from './BaseModels'; import {Asset} from './Asset'; import {EmergencyContact} from './EmergencyContact'; import {EventGroup} from './EventGroup'; import {Event} from './Event'; import {EventDashboard} from './EventDashboard'; import {EventSummary} from './EventSummary'; import {EventTriggerTemplate} from './EventTriggerTemplate'; import {AssetState} from './AssetState'; import {EventTriggerAssetState} from './EventTriggerAssetState'; import {Log} from './Log'; import {TelegramChat} from './TelegramChat'; declare var Object: any; export interface EventTriggerInterface { type: string; name: string; description?: string; subject?: string; enabled: boolean; eventGroupingByMinutes: number; muted: boolean; hidden: boolean; starred: boolean; notifications?: any; created?: Date; modified?: Date; deleted?: Date; id?: any; assetId?: any; eventGroupId?: any; templateId?: any; _rules?: Array<any>; asset?: Asset; emergencyContacts?: EmergencyContact[]; eventGroup?: EventGroup; events?: Event[]; eventDashboards?: EventDashboard[]; summaries?: EventSummary[]; template?: EventTriggerTemplate; assetStates?: AssetState[]; states?: EventTriggerAssetState[]; rules?: any[]; trackingLogs?: Log[]; telegramChats?: TelegramChat[]; } export class EventTrigger implements EventTriggerInterface { type: string; name: string; description: string; subject: string; enabled: boolean = true; eventGroupingByMinutes: number = 5; muted: boolean; hidden: boolean; starred: boolean; notifications: any; created: Date; modified: Date; deleted: Date; id: any; assetId: any; eventGroupId: any; templateId: any; _rules: Array<any> = []; asset?: Asset; emergencyContacts?: EmergencyContact[]; eventGroup?: EventGroup; events?: Event[]; eventDashboards?: EventDashboard[]; summaries?: EventSummary[]; template?: EventTriggerTemplate; assetStates?: AssetState[]; states?: EventTriggerAssetState[]; rules?: any[]; trackingLogs?: Log[]; telegramChats?: TelegramChat[]; constructor(data?: EventTriggerInterface) { Object.assign(this, data); } /** * The name of the model represented by this $resource, * i.e. `EventTrigger`. */ public static getModelName(): string { return 'EventTrigger'; } /** * @method factory * @author Jonathan Casarrubias * @license MIT * This method creates an instance of EventTrigger for dynamic purposes. */ public static factory(data: EventTriggerInterface): EventTrigger{ return new EventTrigger(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: 'EventTrigger', plural: 'EventTriggers', path: 'EventTriggers', idName: 'id', properties: { type: { name: 'type', type: 'string' }, name: { name: 'name', type: 'string' }, description: { name: 'description', type: 'string' }, subject: { name: 'subject', type: 'string' }, enabled: { name: 'enabled', type: 'boolean', default: true }, eventGroupingByMinutes: { name: 'eventGroupingByMinutes', type: 'number', default: 5 }, muted: { name: 'muted', type: 'boolean' }, hidden: { name: 'hidden', type: 'boolean' }, starred: { name: 'starred', type: 'boolean' }, notifications: { name: 'notifications', 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' }, eventGroupId: { name: 'eventGroupId', type: 'any' }, templateId: { name: 'templateId', type: 'any' }, _rules: { name: '_rules', type: 'Array&lt;any&gt;', default: [] }, }, relations: { asset: { name: 'asset', type: 'Asset', model: 'Asset', relationType: 'belongsTo', keyFrom: 'assetId', keyTo: 'id' }, emergencyContacts: { name: 'emergencyContacts', type: 'EmergencyContact[]', model: 'EmergencyContact', relationType: 'hasMany', modelThrough: 'EmergencyContactEventTrigger', keyThrough: 'emergencyContactId', keyFrom: 'id', keyTo: 'eventTriggerId' }, eventGroup: { name: 'eventGroup', type: 'EventGroup', model: 'EventGroup', relationType: 'belongsTo', keyFrom: 'eventGroupId', keyTo: 'id' }, events: { name: 'events', type: 'Event[]', model: 'Event', relationType: 'hasMany', keyFrom: 'id', keyTo: 'eventTriggerId' }, eventDashboards: { name: 'eventDashboards', type: 'EventDashboard[]', model: 'EventDashboard', relationType: 'hasMany', modelThrough: 'EventDashboardEventTrigger', keyThrough: 'eventDashboardId', keyFrom: 'id', keyTo: 'eventTriggerId' }, summaries: { name: 'summaries', type: 'EventSummary[]', model: 'EventSummary', relationType: 'hasMany', keyFrom: 'id', keyTo: 'eventTriggerId' }, template: { name: 'template', type: 'EventTriggerTemplate', model: 'EventTriggerTemplate', relationType: 'belongsTo', keyFrom: 'templateId', keyTo: 'id' }, assetStates: { name: 'assetStates', type: 'AssetState[]', model: 'AssetState', relationType: 'hasMany', modelThrough: 'EventTriggerAssetState', keyThrough: 'assetStateId', keyFrom: 'id', keyTo: 'eventTriggerId' }, states: { name: 'states', type: 'EventTriggerAssetState[]', model: 'EventTriggerAssetState', relationType: 'hasMany', keyFrom: 'id', keyTo: 'eventTriggerId' }, rules: { name: 'rules', type: 'any[]', model: '', relationType: 'embedsMany', keyFrom: '_rules', keyTo: 'id' }, trackingLogs: { name: 'trackingLogs', type: 'Log[]', model: 'Log', relationType: 'hasMany', keyFrom: 'id', keyTo: 'trackingModelId' }, telegramChats: { name: 'telegramChats', type: 'TelegramChat[]', model: 'TelegramChat', relationType: 'hasMany', modelThrough: 'TelegramChatEventTrigger', keyThrough: 'telegramChatId', keyFrom: 'id', keyTo: 'eventTriggerId' }, } }; } }