app/inventory/validators/applications.js
'use strict';
const Joi = require('joi');
const {roles, deploy, entries, entities, tags, owner, pdbs, asm_groups, datacenters, environment, family, active, status, unique_id, created_at} = require('core/validators/validators');
const schema = Joi.object().keys({
name: Joi.string().min(3).max(150).required(),
description: Joi.string().max(800),
system: Joi.array().items(entities).unique(),
own: Joi.number().max(1),
role: Joi.any(),
language: Joi.string().min(1).max(80),
provider: Joi.string().min(3).max(80),
cluster: Joi.string().max(100),
dataguard: Joi.string().max(40),
storage_types: Joi.string().max(40),
asm_groups: Joi.array().items(asm_groups),
pdbs: Joi.array().items(pdbs),
crs_version: Joi.string().max(40),
deploy: Joi.array().items(deploy),
type: Joi.string().min(3).max(30),
modal: Joi.string().max(30),
roles: Joi.array().items(roles).unique('_id'),
tags: Joi.array().items(tags),
engine: Joi.string(),
size: Joi.string().default('medium'),
targets: Joi.array().items(entries).unique(),
deps: Joi.array().items(entries).unique(),
queues: Joi.any(),
urls: Joi.any(),
cache_behavior: Joi.any(),
cache_nodes: Joi.any(),
domain: Joi.any(),
loadbalance_names: Joi.any(),
instances: Joi.any(),
tables: Joi.any(),
unique_id,
status,
datacenters,
environment,
family,
owner,
active,
created_at
});
module.exports = {
create: schema,
update: schema,
delete: {},
list: {}
};