Mercurial > hg > freeDiameter
view extensions/dict_json/dict_json_dict_schema.cc @ 1333:cbe1da7a32f1
Add dict_json extension.
This extension allows loading diameter dictionares from a JSON file.
Example files are provided by contrib/dict_json.
author | Thomas Klausner <tk@giga.or.at> |
---|---|
date | Tue, 09 Apr 2019 15:11:32 +0200 |
parents | |
children |
line wrap: on
line source
const char * dict_json_dict_schema = "\ { \n\ \"definitions\": { \n\ \"content\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"AVP\" ], \n\ \"properties\": { \n\ \"AVP\": { \"type\": \"string\" }, \n\ \"Vendor\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"First\": { \"type\": \"boolean\" }, \n\ \"Min\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"Max\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"enum\": [ \"unbounded\" ] } ] } \n\ } \n\ } \n\ }, \n\ \n\ \"identifier\": { \"type\": \"string\", \"pattern\": \"^[[:print:]]+$\" }, \n\ \"type\": { \n\ \"enum\": [ \n\ \"Address\", \n\ \"DiameterIdentity\", \n\ \"DiameterURI\", \n\ \"Enumerated\", \n\ \"Float32\", \n\ \"Float64\", \n\ \"Grouped\", \n\ \"Integer32\", \n\ \"Integer64\", \n\ \"IPFilterRule\", \n\ \"OctetString\", \n\ \"Time\", \n\ \"Unsigned32\", \n\ \"Unsigned64\", \n\ \"UTF8String\" \n\ ] \n\ }, \n\ \"unsigned-integer\": { \"type\": \"integer\", \"minimum\": 0 } \n\ }, \n\ \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"properties\": { \n\ \"Vendors\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Code\", \"Name\" ], \n\ \"properties\": { \n\ \"Code\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"Name\": { \"$ref\": \"#/definitions/identifier\" } \n\ } \n\ } \n\ }, \n\ \"Types\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Name\", \"Base\" ], \n\ \"properties\": { \n\ \"Name\": { \"type\": \"string\" }, \n\ \"Base\": { \"type\": \"string\" } \n\ } \n\ } \n\ }, \n\ \"AVPs\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Code\", \"Name\", \"Type\" ], \n\ \"properties\": { \n\ \"Code\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"Vendor\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"Name\": { \"$ref\": \"#/definitions/identifier\" }, \n\ \"Flags\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"properties\": { \n\ \"Must\": { \"type\": \"string\", \"pattern\": \"^[VMP]*$\" }, \n\ \"MustNot\": { \"type\": \"string\", \"pattern\": \"^[VMP]*$\" } \n\ } \n\ }, \n\ \"Type\": { \"$ref\": \"#/definitions/identifier\" }, \n\ \"EnumValues\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Code\", \"Name\" ], \n\ \"properties\": { \n\ \"Code\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"number\" }, { \"type\": \"string\" } ] }, \n\ \"Name\": { \"type\": \"string\", \"pattern\": \"^[[:print:]]*$\" } \n\ } \n\ } \n\ } \n\ } \n\ } \n\ }, \n\ \"Applications\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Code\", \"Name\" ], \n\ \"properties\": { \n\ \"Code\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"Name\": { \"$ref\": \"#/definitions/identifier\" } \n\ } \n\ } \n\ }, \n\ \"Commands\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Code\", \"Name\" ], \n\ \"properties\": { \n\ \"Code\": { \"$ref\": \"#/definitions/unsigned-integer\" }, \n\ \"Name\": { \"$ref\": \"#/definitions/identifier\" }, \n\ \"Application\": { \"$ref\": \"#/definitions/identifier\" }, \n\ \"Flags\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"properties\": { \n\ \"Must\": { \"type\": \"string\", \"pattern\": \"^[RPE]*$\" }, \n\ \"MustNot\": { \"type\": \"string\", \"pattern\": \"^[RPET]*$\" } \n\ } \n\ } \n\ } \n\ } \n\ }, \n\ \"CommandRules\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"Command\", \"Content\" ], \n\ \"properties\": { \n\ \"Command\": { \"type\": \"string\", \"minimum\": 0 }, \n\ \"Content\": { \"$ref\": \"#/definitions/content\" } \n\ } \n\ } \n\ }, \n\ \"AVPRules\": { \n\ \"type\": \"array\", \n\ \"items\": { \n\ \"type\": \"object\", \n\ \"additionalProperties\": false, \n\ \"required\": [ \"AVP\", \"Content\" ], \n\ \"properties\": { \n\ \"AVP\": { \"type\": \"string\" }, \n\ \"Vendor\": { \"type\": \"integer\", \"minimum\" : 0 }, \n\ \"Content\": { \"$ref\": \"#/definitions/content\" } \n\ } \n\ } \n\ } \n\ } \n\ } \n\ ";