{
"name": "fog-pack Core Schema",
"version": 1,
"doc": {
"Map": {
"req": {
"doc": { "Ref": "Validator" }
},
"opt": {
"name": { "Str": {} },
"doc_compress": { "Ref": "Compress" },
"description": { "Str": {} },
"version": { "Int": {} },
"entries": {
"Map": {
"values": {
"Map": {
"req": { "entry": { "Ref": "Validator" } },
"opt": { "compress": { "Ref": "Compress" } }
}
}
}
},
"types": {
"Map": {
"values": { "Ref": "Validator" }
}
},
"max_regex": { "Int": { "min": 0, "max": 255 } }
}
}
},
"types": {
"Compress": {
"Enum": {
"None": null,
"General": {
"Map": {
"algorithm": { "Int": { "min": 0 } },
"level": { "Int": { "min": 0, "max": 255 } }
}
},
"Dict": {
"Map": {
"algorithm": { "Int": { "min": 0 } },
"level": { "Int": { "min": 0, "max": 255 } },
"dict": { "Bin": {} }
}
}
}
},
"Validator": {
"Enum": {
"Null": null,
"Bool": {
"Map": {
"comment": "The Boolean type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Bool": {} },
"in": { "Array": { "items": { "Bool": {} } } },
"nin": { "Array": { "items": { "Bool": {} } } },
"query": { "Bool": {} }
}
}
},
"Int": {
"Map": {
"comment": "The Integer type validator",
"opt": {
"comment": { "Str": {} },
"bits_clr": { "Int": { "min": 0 } },
"bits_set": { "Int": { "min": 0 } },
"default": { "Int": {} },
"max": { "Int": {} },
"min": { "Int": {} },
"ex_max": { "Bool": {} },
"ex_min": { "Bool": {} },
"in": { "Array": { "items": { "Int": {} } } },
"nin": { "Array": { "items": { "Int": {} } } },
"query": { "Bool": {} },
"bit": { "Bool": {} },
"ord": { "Bool": {} }
}
}
},
"Str": {
"Map": {
"comment": "The String type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Str": {} },
"in": { "Array": { "items": { "Str": {} } } },
"nin": { "Array": { "items": { "Str": {} } } },
"matches": { "Str": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"min_len": { "Int": { "min": 0, "max": 4294967295 } },
"max_char": { "Int": { "min": 0 } },
"min_char": { "Int": { "min": 0 } },
"normalize": {
"Enum": {
"None": null,
"NFC": null,
"NFKC": null
}
},
"query": { "Bool": {} },
"regex": { "Bool": {} },
"size": { "Bool": {} }
}
}
},
"F32": {
"Map": {
"comment": "The F32 type validator",
"opt": {
"comment": { "Str": {} },
"default": { "F32": {} },
"max": { "F32": { } },
"min": { "F32": { } },
"ex_max": { "Bool": {} },
"ex_min": { "Bool": {} },
"in": { "Array": { "items": { "F32": {} } } },
"nin": { "Array": { "items": { "F32": {} } } },
"query": { "Bool": {} },
"ord": { "Bool": {} }
}
}
},
"F64": {
"Map": {
"comment": "The F64 type validator",
"opt": {
"comment": { "Str": {} },
"default": { "F64": {} },
"max": { "F64": { } },
"min": { "F64": { } },
"ex_max": { "Bool": {} },
"ex_min": { "Bool": {} },
"in": { "Array": { "items": { "F64": {} } } },
"nin": { "Array": { "items": { "F64": {} } } },
"query": { "Bool": {} },
"ord": { "Bool": {} }
}
}
},
"Bin": {
"Map": {
"comment": "The Binary type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Bin": {} },
"bits_clr": { "type": "Bin" },
"bits_set": { "type": "Bin" },
"ex_max": { "Bool": {} },
"ex_min": { "Bool": {} },
"max": { "Bin": {} },
"min": { "Bin": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"min_len": { "Int": { "min": 0, "max": 4294967295 } },
"in": { "Array": { "items": { "Bin": {} } } },
"nin": { "Array": { "items": { "Bin": {} } } },
"query": { "Bool": {} },
"bit": { "Bool": {} },
"ord": { "Bool": {} },
"size": { "Bool": {} }
}
}
},
"Array": {
"Map": {
"comment": "The Array type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Array": {} },
"contains": { "Array": { "items": { "Ref": "Validator" } } },
"items": { "Ref": "Validator" },
"prefix": { "Array": { "items": { "Ref": "Validator" } } },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"min_len": { "Int": { "min": 0, "max": 4294967295 } },
"in": { "Array": { "items": { "Array": {} } } },
"nin": { "Array": { "items": { "Array": {} } } },
"unique": { "Bool": {} },
"query": { "Bool": {} },
"array": { "Bool": {} },
"contains_ok": { "Bool": {} },
"unique_ok": { "Bool": {} },
"size": { "Bool": {} }
}
}
},
"Map": {
"Map": {
"comment": "The Map type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Map": { "values": "Any" } },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"min_len": { "Int": { "min": 0, "max": 4294967295 } },
"keys": { "Map": {
"comment": "Allowed key strings",
"opt": {
"matches": { "Str": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"min_len": { "Int": { "min": 0, "max": 4294967295 } },
"normalize": {
"Enum": {
"None": null,
"NFC": null,
"NFKC": null
}
}
}
},
"values": { "Ref": "Validator" },
"req": { "Map": { "values": { "Ref": "Validator" } } },
"opt": { "Map": { "values": { "Ref": "Validator" } } },
"ban": { "Array": { "items": { "Str": {} } } },
"in": {
"Array": { "items": { "Map": { "values": "Any" } } }
},
"nin": {
"Array": { "items": { "Map": { "values": "Any" } } }
},
"query": { "Bool": {} },
"size": { "Bool": {} },
"map_ok": { "Bool": {} },
"match_keys": { "Bool": {} },
"len_keys": { "Bool": {} }
}
}
},
"Time": {
"Map": {
"comment": "The Timestamp type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Time": {} },
"max": { "Time": {} },
"min": { "Time": {} },
"ex_max": { "Bool": {} },
"ex_min": { "Bool": {} },
"in": { "Array": { "items": { "Time": {} } } },
"nin": { "Array": { "items": { "Time": {} } } },
"query": { "Bool": {} },
"ord": { "Bool": {} }
}
}
},
"Hash": {
"Map": {
"comment": "The Hash type validator",
"opt": {
"comment": { "Str": {} },
"default": { "Hash": {} },
"link": { "Ref": "Validator" },
"schema": { "Array": { "items": { "Multi": [ { "Hash": {}}, "Null" ] } } },
"in": { "Array": { "items": { "Hash": {} } } },
"nin": { "Array": { "items": { "Hash": {} } } },
"query": { "Bool": {} },
"link_ok": { "Bool": {} },
"schema_ok": { "Bool": {} }
}
}
},
"Identity": {
"Map": {
"comment": "The Identity type validator",
"opt": {
"comment": { "Str": {} },
"in": { "Array": { "items": { "Identity": {} } } },
"nin": { "Array": { "items": { "Identity": {} } } },
"query": { "Bool": {} }
}
}
},
"StreamId": {
"Map": {
"comment": "The StreamId type validator",
"opt": {
"comment": { "Str": {} },
"in": { "Array": { "items": { "StreamId": {} } } },
"nin": { "Array": { "items": { "StreamId": {} } } },
"query": { "Bool": {} }
}
}
},
"LockId": {
"Map": {
"comment": "The LockId type validator",
"opt": {
"comment": { "Str": {} },
"in": { "Array": { "items": { "LockId": {} } } },
"nin": { "Array": { "items": { "LockId": {} } } },
"query": { "Bool": {} }
}
}
},
"DataLockbox": {
"Map": {
"comment": "The DataLockbox type validator",
"opt": {
"comment": { "Str": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"size": { "Bool": {} }
}
}
},
"IdentityLockbox": {
"Map": {
"comment": "The IdentityLockbox type validator",
"opt": {
"comment": { "Str": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"size": { "Bool": {} }
}
}
},
"StreamLockbox": {
"Map": {
"comment": "The StreamLockbox type validator",
"opt": {
"comment": { "Str": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"size": { "Bool": {} }
}
}
},
"LockLockbox": {
"Map": {
"comment": "The LockLockbox type validator",
"opt": {
"comment": { "Str": {} },
"max_len": { "Int": { "min": 0, "max": 4294967295 } },
"size": { "Bool": {} }
}
}
},
"Any": null,
"Ref": { "Str": {} },
"Enum": {
"Map": {
"values": { "Multi": ["Null", { "Ref": "Validator" }] }
}
},
"Multi": {
"Array": {
"comment": "An array of validators. Matching any will validate.",
"items": { "Ref": "Validator" }
}
}
}
}
}
}