-
Notifications
You must be signed in to change notification settings - Fork 46
/
schema.json
92 lines (91 loc) · 2.96 KB
/
schema.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
{
"id":"http://spacebrew.cc/messaging-schema#",
"$schema":"http://json-schema.org/draft-04/schema#",
"description":"a schema defining the messages sent by clients and admins",
"type":"object",
"oneOf":[
{"$ref":"#/definitions/config"},
{"$ref":"#/definitions/message"},
{"$ref":"#/definitions/admin"},
{"$ref":"#/definitions/route"}],
"definitions":{
"config":{
"type":"object",
"required":["config"],
"properties":{
"config":{
"type":"object",
"required":["name","description"],
"properties":{
"name":{"type":"string"},
"description":{"type":"string"},
"subscribe":{
"type":"object",
"properties":{
"messages":{
"type":"array",
"items":{
"type":"object",
"required":["type","name"],
"properties":{
"type":{"type":"string"},
"name":{"type":"string"},
"default":{}}}}}},
"publish":{
"type":"object",
"properties":{
"messages":{
"type":"array",
"items":{
"type":"object",
"required":["type","name"],
"properties":{
"type":{"type":"string"},
"name":{"type":"string"},
"default":{}}}}}},
"options":{"type":"object"}}}}},
"message":{
"type":"object",
"required":["message"],
"properties":{
"message":{
"type":"object",
"required":["clientName","name","type","value"],
"properties":{
"clientName":{"type":"string"},
"name":{"type":"string"},
"type":{"type":"string"},
"value":{}}}}},
"admin":{
"type":"object",
"required":["admin"],
"properties":{
"admin":{},
"no_msgs":{}}},
"route":{
"type":"object",
"required":["route"],
"properties":{
"route":{
"type":"object",
"required":["publisher","subscriber","type"],
"properties":{
"type":{"enum":["add","remove"]},
"publisher":{
"type":"object",
"required":["type","clientName","remoteAddress","name"],
"properties":{
"type":{"type":"string"},
"clientName":{"type":"string"},
"name":{"type":"string"},
"remoteAddress":{"type":"string"}},
"subscriber":{
"type":"object",
"required":["type","clientName","remoteAddress","name"],
"properties":{
"type":{"type":"string"},
"clientName":{"type":"string"},
"name":{"type":"string"},
"remoteAddress":{"type":"string"}}}}}}}}
}
}