cuelang.org/go@v0.10.1/encoding/jsonschema/testdata/object.txtar (about) 1 -- type.json -- 2 { 3 "type": "object", 4 "title": "Main schema", 5 6 "properties": { 7 "fields" : { 8 "type": "object", 9 "minProperties": 3, 10 "maxProperties": 10, 11 "propertyNames": { 12 "pattern": "^\\P{Lu}" 13 } 14 }, 15 "additional": { 16 "type": "object", 17 "properties": { 18 "foo": { "type": "number" }, 19 "bar": { "type": "number" } 20 }, 21 "additionalProperties": { "type": "string" } 22 }, 23 "map": { 24 "type": "object", 25 "additionalProperties": { "type": "string" } 26 }, 27 "patterns": { 28 "type": "object", 29 "properties": { 30 "foo": { "type": "number" }, 31 "bar": { "type": "number" } 32 }, 33 "patternProperties": { 34 "^\\P{Lu}": { "type": "string" }, 35 "^\\P{Lo}": { "type": "integer" } 36 } 37 }, 38 "patternsNoProps": { 39 "type": "object", 40 "patternProperties": { 41 "^\\P{Lu}": { "type": "string" }, 42 "^\\P{Lo}": { "type": "integer" } 43 } 44 }, 45 "complex": { 46 "type": "object", 47 "properties": { 48 "foo": { "type": "number" }, 49 "bar": { "type": "number" } 50 }, 51 "patternProperties": { 52 "^\\P{Lu}": { "type": "string" }, 53 "^\\P{Lo}": { "type": "integer" } 54 }, 55 "additionalProperties": { "type": "string" } 56 }, 57 "multi": { 58 "type": [ "object", "number" ], 59 "properties": { 60 "foo": { "type": "number" }, 61 "bar": { "type": "number" } 62 }, 63 "maxProperties": 5, 64 "minimum": 7 65 } 66 }, 67 "additionalProperties": false 68 } 69 70 -- out/decode/cue -- 71 import "struct" 72 73 // Main schema 74 fields?: struct.MaxFields(10) & { 75 [=~"^\\P{Lu}"]: _ 76 } 77 additional?: { 78 foo?: number 79 bar?: number 80 {[!~"^(foo|bar)$"]: string} 81 } 82 map?: [string]: string 83 patterns?: { 84 foo?: number 85 bar?: number 86 87 {[=~"^\\P{Lu}" & !~"^(foo|bar)$"]: string} 88 89 {[=~"^\\P{Lo}" & !~"^(foo|bar)$"]: int} 90 ... 91 } 92 patternsNoProps?: { 93 {[=~"^\\P{Lu}" & !~"^()$"]: string} 94 95 {[=~"^\\P{Lo}" & !~"^()$"]: int} 96 ... 97 } 98 complex?: { 99 foo?: number 100 bar?: number 101 102 {[=~"^\\P{Lu}" & !~"^(foo|bar)$"]: string} 103 104 {[=~"^\\P{Lo}" & !~"^(foo|bar)$"]: int} 105 {[!~"^\\P{Lu}" & !~"^\\P{Lo}" & !~"^(foo|bar)$"]: string} 106 } 107 multi?: >=7 | struct.MaxFields(5) & { 108 foo?: number 109 bar?: number 110 ... 111 }