diff --git a/schemas/commodity-v2.0-draft.json b/schemas/commodity-v2.0-draft.json index 106dd81..d6ee7c2 100644 --- a/schemas/commodity-v2.0-draft.json +++ b/schemas/commodity-v2.0-draft.json @@ -1,119 +1,88 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "http://schemas.elite-markets.net/eddn/commodity/2#", - "type": "object", - "additionalProperties": false, - "properties": { - "$schemaRef": { - "type": "string", - "additionalProperties": false - }, - "header": { - "type": "object", - "additionalProperties": true, - "properties": { - "uploaderID": { - "type": "string", - "additionalProperties": false - }, - "softwareName": { - "type": "string", - "additionalProperties": false - }, - "softwareVersion": { - "type": "string", - "additionalProperties": false - }, - "gatewayTimestamp": { + "$schema" : "http://json-schema.org/draft-04/schema#", + "id" : "http://schemas.elite-markets.net/eddn/commodity/2#", + "type" : "object", + "additionalProperties" : false, + "required" : [ "$schemaRef", "header", "message" ], + "properties" : { + "$schemaRef" : { "type": "string" }, + + "header" : { + "type" : "object", + "additionalProperties" : true, + "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.", - "additionalProperties": false + "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", "commodities" ], "properties": { "systemName": { - "type": "string", - "additionalProperties": false + "type" : "string" }, "stationName": { - "type": "string", - "additionalProperties": false + "type" : "string" }, "timestamp": { - "type": "string", - "format": "date-time", - "additionalProperties": false + "type" : "string", + "format" : "date-time" }, "commodities": { - "type": "array", - "additionalProperties": false, - "items": { + "type" : "array", + "minItems" : 1, + "items" : { "oneOf": [ - { - "type" : "object", - "properties": { - "name": { - "type": "string", - "additionalProperties": false - }, - "buyPrice": { - "type": "integer", - "description": "Price to buy from the market", - "additionalProperties": false - }, - "supply": { - "type": "integer", - "additionalProperties": false - }, - "supplyLevel": { - "$ref": "#/definitions/levelType" - }, - "sellPrice": { - "type": "integer", - "description": "Price to sell to the market", - "additionalProperties": false - }, - "demand": { - "type": "integer", - "additionalProperties": false - }, - "demandLevel": { - "$ref": "#/definitions/levelType" - } - }, - "required": [ - "name", - "buyPrice", - "supply", - "sellPrice", - "demand" - ] - } - ] + { + "type" : "object", + "additionalProperties" : false, + "required" : [ "name", "buyPrice", "supply", "sellPrice", "demand" ], + "properties" : { + "name": { + "type" : "string", + "minLength" : 1 + }, + "buyPrice": { + "type": "integer", + "description": "Price to buy from the market" + }, + "supply": { + "type": "integer" + }, + "supplyLevel": { + "$ref": "#/definitions/levelType" + }, + "sellPrice": { + "type": "integer", + "description": "Price to sell to the market" + }, + "demand": { + "type": "integer" + }, + "demandLevel": { + "$ref": "#/definitions/levelType" + } + } + } + ] } } - }, - "required": [ - "systemName", - "stationName", - "commodities", - "timestamp" - ] + } } }, - "required": [ - "$schemaRef", - "header", - "message" - ], - "definitions" : { - "levelType" : { - "enum": ["Low", "Med", "High"] - } - } + + "definitions" : { + "levelType" : { + "enum": ["Low", "Med", "High"] + } + } } \ No newline at end of file