var schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"transfer": {
"type": "object",
"properties": {
"modes": {
"type": "array",
"minItems": 1,
"additionalItems": false,
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"enum": [
"ftp"
]
},
"account": {
"type": "string",
"pattern": "^[a-f|0-9]{8}quot;
}
},
"required": [
"mode",
"account"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"enum": [
"email"
]
},
"mailingList": {
"type": "string",
"pattern": "^[a-f|0-9]{8}quot;
}
},
"required": [
"mode",
"mailingList"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"modes"
],
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"transfer"
]
};
var ajv = require('ajv')();
ajv.validate(schema, {
"transfer": {
"modes": [
{
"mode": "ftp",
"account": "e69b3f54"
},
{
"mode": "email",
"mailingList": "c3d12752"
}
]
}
});