UNPKG

screwdriver-data-schema

Version:
46 lines (41 loc) 1.28 kB
'use strict'; const Joi = require('joi'); const BaseSchema = require('./base'); const Annotations = require('./annotations'); const Parameters = require('./parameters'); const Template = require('./template'); const Regex = require('./regex'); const SCHEMA_CONFIG = Joi.object() .keys({ jobs: BaseSchema.jobs.required(), shared: BaseSchema.shared, parameters: Parameters.parameters.default({}), annotations: Annotations.annotations, cache: BaseSchema.cache, subscribe: BaseSchema.subscribe, stages: BaseSchema.stages }) .unknown(false); const SCHEMA_TEMPLATE = Joi.object() .keys({ namespace: Template.namespace.required(), name: Joi.string() .regex(Regex.TEMPLATE_NAME_NO_SLASH) .max(64) .description('Name of the template') .example('nodePipeline') .required(), version: Template.version.required(), description: Template.description.required(), maintainer: Template.maintainer.required(), config: SCHEMA_CONFIG.required() }) .unknown(false); /** * The definition of the Template pieces * @type {Object} */ module.exports = { template: SCHEMA_TEMPLATE, config: SCHEMA_CONFIG };