-
Notifications
You must be signed in to change notification settings - Fork 62
/
Copy pathfcmaterials_capi-v1.0.json
152 lines (149 loc) · 6.75 KB
/
fcmaterials_capi-v1.0.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
{
"$schema" : "http://json-schema.org/draft-04/schema#",
"id" : "https://eddn.edcd.io/schemas/fcmaterials_capi/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"
},
"gameversion": {
"type" : "string",
"description" : "Value of 'CAPI-market' if possible, else empty string."
},
"gamebuild": {
"type" : "string",
"description" : "Value of 'CAPI-market' if possible, else empty 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",
"description" : "Contains all properties from the listed events in the client's journal minus the Localised strings and the properties marked below as 'disallowed'",
"additionalProperties" : false,
"required" : [ "timestamp", "event", "MarketID", "CarrierID", "Items" ],
"properties" : {
"timestamp": {
"type" : "string",
"format" : "date-time"
},
"event" : {
"enum" : [ "FCMaterials" ]
},
"horizons": {
"type" : "boolean",
"description" : "Boolean value copied from the Journal LoadGame event, when it is present there."
},
"odyssey": {
"type" : "boolean",
"description" : "Boolean value copied from the Journal LoadGame event, when it is present there."
},
"MarketID": {
"type" : "integer"
},
"CarrierID": {
"type" : "string",
"minLength" : 1
},
"Items": {
"properties": {
"purchases": {
"type": "array",
"items": {
"type": "object",
"required": [ "name", "price", "outstanding", "total" ],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"locName": {
"$ref": "#/definitions/disallowed"
},
"outstanding": {
"type": "integer"
},
"price": {
"type": "integer"
},
"total": {
"type": "integer"
}
}
}
},
"sales": {
"anyOf": [
{
"type": "array",
"$comment": "If there are no items then sales is an empty array",
"minItems": 0,
"maxItems": 0
},
{
"type": "object",
"$comment": "If there ARE items then sales is an object, *NOT* an array",
"patternProperties": {
"^[0-9]+$": {
"type" : "object",
"required" : [ "id", "name", "price", "stock" ],
"additionalProperties": false,
"properties": {
"id" : {
"type" : "integer"
},
"name" : {
"type" : "string",
"minLength": 1
},
"locName" : {
"$ref": "#/definitions/disallowed"
},
"price" : {
"type": "integer"
},
"stock": {
"type": "integer"
}
}
}
}
}
]
}
}
}
}
}
},
"definitions": {
"disallowed": {
"not" : {
"type": [
"array", "boolean", "integer", "number", "null", "object", "string"
]
}
}
}
}