UNPKG

berlioz

Version:

Berlioz - cloud deployment and migration services

76 lines (59 loc) 1.77 kB
const Base = require('./base'); const _ = require('the-lodash'); class Trigger extends Base { constructor(definition) { Base.setupSector(definition) super(definition, [definition.cluster, definition.sector, definition.name]); } get name() { return this.definition.name; } get clusterName() { return this.definition.cluster; } get cluster() { this.registry.findByNaming('cluster', this.clusterName); } get sectorName() { return this.definition.sector; } get sector() { this.registry.findByNaming('sector', [this.clusterName, this.sectorName]); } get schedule() { return this.definition.schedule; } get initializeEnabled() { return this.definition.initializeEnabled; } extractData(data) { super.extractData(data); data.push(['clusterName', this.clusterName]); data.push(['sectorName', this.sectorName]); data.push(['name', this.name]); data.push(['class', this.className]); data.push(['schedule', this.schedule]); data.push(['initializeEnabled', this.initializeEnabled]); } // #region Validation _getValidationSchema(Joi) { return Joi.object().keys({ kind: Joi.string().required(), cluster: Joi.clusterName().required(), sector: Joi.sectorName(), name: Joi.triggerName().required(), schedule: Joi.string().required(), initializeEnabled: Joi.boolean(), consumes: Joi.array().items(Joi.object().keys({ lambda: Joi.lambdaName() }) ), }); } // #endregion } module.exports = Trigger;