osmo-cbc/smscb.schema.json

132 lines
4.0 KiB
JSON

{
"id": "http://api.osmocom.org/json-schema/smscb.schema.json#",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "SMSCB (Cell Broadcast) data types",
"type": "object",
"definitions": {
"iso639-1": {
"enum": [ "al","aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu" ]
},
"message_id": {
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"geographic_scope" : {
"enum": [ "cell_wide_immediate", "plmn_wide", "lac_sac_tac_wide", "cell_wide" ]
},
"message_code" : {
"type": "integer",
"minimum": 0,
"maximum": 1023
},
"update_number" : {
"type": "integer",
"minimum": 0,
"maximum": 15
},
"serial_nr_encoded": {
"type": "integer",
"minimum": 0,
"maximum": 65535
},
"serial_nr_decoded": {
"type": "object",
"properties": {
"geo_scope": { "$ref": "#/definitions/geographic_scope" },
"msg_code": { "$ref": "#/definitions/message_code" },
"update_nr": { "$ref": "#/definitions/update_number" }
},
"required": [ "geo_scope", "msg_code", "update_nr" ]
},
"serial_nr": {
"oneOf": [
{ "$ref":"#/definitions/serial_nr_encoded" },
{ "$ref":"#/definitions/serial_nr_decoded" }
]
},
"dcs_encoded": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"character_set": {
"enum": [ "gsm", "8bit", "ucs2" ]
},
"dcs_class": {
"type": "integer",
"minimum": 0,
"maximum": 3
},
"payload_decoded": {
"type": "object",
"properties": {
"character_set": { "$ref": "#/definitions/character_set" },
"language": { "$ref": "#/definitions/iso639-1" },
"dcs_class": { "$ref": "#/definitions/dcs_class" },
"data_utf8": { "type": "string" }
},
"required": [ "data_utf8" ]
},
"page": {
"type": "string"
},
"payload_encoded": {
"type": "object",
"properties": {
"dcs": { "$ref": "#/definitions/dcs_encoded" },
"pages": {
"type": "array",
"items": { "$ref": "#/definitions/page" }
},
"required": [ "dcs", "pages" ]
}
},
"warning_type_encoded": {
"type": "integer",
"minimum": 0,
"maximum": 127
},
"warning_type_decoded": {
"enum": [ "earthquake", "tsunami", "earthquake_and_tsunami", "test",
"other", "rfu" ]
},
"warning_type": {
"oneOf": [
{ "$ref": "#/definitions/warning_type_encoded" },
{ "$ref": "#/definitions/warning_type_decoded" }
]
},
"warning_sec_info": {
"type": "string"
},
"payload_etws": {
"type": "object",
"properties": {
"warning_type": { "$ref": "#/definitions/warning_type" },
"emergency_user_alert": "boolean",
"popup_on_display": "boolean",
"warning_sec_info": { "$ref": "#/definitions/warning_sec_info" }
},
"required": [ "warning_type" ]
},
"payload": {
"oneOf": [
{ "$ref": "#/definitions/payload_encoded" },
{ "$ref": "#/definitions/payload_decoded" },
{ "$ref": "#/definitions/payload_etws" }
]
},
"smscb_message": {
"type": "object",
"properties": {
"serial_nr": { "$ref": "#/definitions/serial_nr" },
"message_id": { "$ref": "#/definitions/message_id" },
"payload": { "$ref": "#/definitions/payload" }
},
"required": [ "serial_nr", "message_id", "payload" ]
}
}
}