EDDN/schemas/outfitting-v1.0.json
2015-07-22 18:46:36 +01:00

122 lines
5.1 KiB
JSON

{
"$schema" : "http://json-schema.org/draft-04/schema#",
"id" : "http://schemas.elite-markets.net/eddn/outfitting/1#",
"type" : "object",
"additionalProperties" : false,
"required" : [ "$schemaRef", "header", "message" ],
"properties" : {
"$schemaRef" : { "type": "string" },
"header" : {
"type" : "object",
"additionalProperties" : true,
"required": [ "uploaderID", "softwareName", "softwareVersion" ],
"properties" : {
"uploaderID" : { "type": "string" },
"softwareName" : { "type": "string" },
"softwareVersion" : { "type": "string" },
"gatewayTimestamp" : {
"type": "string",
"format": "date-time",
"description": "Timestamp upon receipt at the gateway. If present, this property will be overwritten by the gateway; submitters are not intended to populate this property."
}
}
},
"message": {
"type": "object",
"additionalProperties": false,
"required": [ "systemName", "stationName", "timestamp", "modules" ],
"properties": {
"systemName": {
"type" : "string",
"minLength" : 1
},
"stationName": {
"type" : "string",
"minLength" : 1
},
"timestamp": {
"type" : "string",
"format" : "date-time"
},
"modules": {
"type" : "array",
"description" : "List of available modules in English as displayed in-game. Modules that depend on the Cmdr's purchases (e.g. paintjobs) or rank (e.g. decals and PowerPlay faction-specific modules) should be omitted.",
"uniqueItems" : true,
"items" : {
"oneOf": [
{
"type" : "object",
"properties" : {
"category" : { "enum": [ "hardpoint" ] },
"name" : { "type": "string", "minLength": 1 },
"mount" : { "$ref": "#/definitions/mount" },
"guidance" : { "$ref": "#/definitions/guidance" },
"class" : { "$ref": "#/definitions/class" },
"rating" : { "$ref": "#/definitions/rating" }
},
"required" : [ "category", "name", "mount", "class", "rating" ],
"additionalProperties" : false
},
{
"type" : "object",
"properties" : {
"category" : { "enum": [ "utility" ] },
"name" : { "type": "string", "minLength": 1 },
"class" : { "$ref": "#/definitions/class" },
"rating" : { "$ref": "#/definitions/rating" }
},
"required" : [ "category", "name", "class", "rating" ],
"additionalProperties" : false
},
{
"type" : "object",
"properties" : {
"category" : { "enum": [ "standard" ] },
"name" : { "type": "string", "minLength": 1 },
"ship" : { "type": "string",
"minLength" : 1,
"description" : "For ship-specific modules (e.g. armour) must be one of the ship names defined in http://schemas.elite-markets.net/eddn/shipyard/1" },
"class" : { "$ref": "#/definitions/class" },
"rating" : { "$ref": "#/definitions/rating" }
},
"required" : [ "category", "name", "class", "rating" ],
"additionalProperties" : false
},
{
"type" : "object",
"properties" : {
"category" : { "enum": [ "internal" ] },
"name" : { "type": "string", "minLength": 1 },
"class" : { "$ref": "#/definitions/class" },
"rating" : { "$ref": "#/definitions/rating" }
},
"required" : [ "category", "name", "class", "rating" ],
"additionalProperties" : false
}
]
}
}
}
}
},
"definitions": {
"class": {
"enum": [ "0", "1", "2", "3", "4", "5", "6", "7", "8" ]
},
"rating": {
"enum": [ "I", "A", "B", "C", "D", "E", "F", "G" ]
},
"mount": {
"enum": [ "Fixed", "Gimballed", "Turreted" ],
"description": "Weapon mounting mode"
},
"guidance": {
"enum": [ "Dumbfire", "Seeker" ],
"description": "Missile and Torpedo weapon guidance mode"
}
}
}