1{ 2 "type": "object", 3 "properties": { 4 "validation": { 5 "$ref": "#/definitions/predicateOrNull" 6 } 7 }, 8 "definitions": { 9 "fieldRef": { 10 "type": "object", 11 "properties": { 12 "field": { 13 "type": "string" 14 }, 15 "set": { 16 "type": "string" 17 } 18 }, 19 "required": [ 20 "field" 21 ] 22 }, 23 "patternPredicate": { 24 "type": "object", 25 "oneOf": [ 26 { 27 "properties": { 28 "notEmpty": { 29 "$ref": "#/definitions/fieldRef" 30 } 31 }, 32 "required": [ 33 "notEmpty" 34 ] 35 }, 36 { 37 "properties": { 38 "notBlank": { 39 "$ref": "#/definitions/fieldRef" 40 } 41 }, 42 "required": [ 43 "notBlank" 44 ] 45 } 46 ] 47 }, 48 "allPredicate": { 49 "type": "object", 50 "properties": { 51 "all": { 52 "type": "array", 53 "minItems": 1, 54 "items": { 55 "$ref": "#/definitions/predicate" 56 } 57 } 58 }, 59 "required": [ 60 "all" 61 ] 62 }, 63 "predicate": { 64 "type": "object", 65 "oneOf": [ 66 { 67 "$ref": "#/definitions/patternPredicate" 68 }, 69 { 70 "$ref": "#/definitions/allPredicate" 71 } 72 ] 73 }, 74 "predicateOrNull": { 75 "oneOf": [ 76 { 77 "$ref": "#/definitions/predicate" 78 }, 79 { 80 "type": "null" 81 } 82 ] 83 } 84 } 85} 86