-
Notifications
You must be signed in to change notification settings - Fork 16
/
12.json
198 lines (198 loc) · 6.8 KB
/
12.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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
{
"$id": "https://schema.spaceapi.io/12.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "SpaceAPI 0.12",
"type": "object",
"properties": {
"api": {
"description": "The version of SpaceAPI your endpoint uses",
"type": "string",
"enum": [
"0.12"
]
},
"space": {
"description": "The name of your space",
"type": "string"
},
"logo": {
"description": "The space logo",
"type": "string"
},
"url": {
"description": "The main website",
"type": "string"
},
"address": {
"description": "The postal address of your space (street, block, housenumber, zip code, city, whatever you usually need in your country, and the country itself)",
"type": "string"
},
"lat": {
"description": "Latitude of your space location, in degree with decimal places. Use positive values for locations north of the equator, negative values for locations south of equator.",
"type": "number"
},
"lon": {
"description": "Longitude of your space location, in degree with decimal places. Use positive values for locations west of Greenwich, and negative values for locations east of Greenwich.",
"type": "number"
},
"cam": {
"description": "URL(s) of webcams in your space",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"stream": {
"description": "A mapping of stream types to stream URLs. Example: <samp>{'mp4':'http//example.org/stream.mpg', 'mjpeg':'http://example.org/stream.mjpeg'}</samp>",
"type": "object"
},
"open": {
"description": "A boolean which indicates if the space is currently open",
"type": "boolean"
},
"status": {
"description": "An additional free-form string, could be something like <samp>'open for public'</samp>, <samp>'members only'</samp> or whatever you want it to be",
"type": "string"
},
"lastchange": {
"description": "The Unix timestamp when the space status changed most recently",
"type": "number"
},
"events": {
"description": "Events which happened recently in your space and which could be interesting to the public, like 'User X has entered/triggered/did something at timestamp Z'",
"type": "array",
"items": {
"required": [
"name",
"type",
"t"
],
"type": "object",
"properties": {
"name": {
"description": "Name or other identity of the subject (e.g. <samp>J. Random Hacker</samp>, <samp>fridge</samp>, <samp>3D printer</samp>, …)",
"type": "string"
},
"type": {
"description": "Action (e.g. <samp>check-in</samp>, <samp>check-out</samp>, <samp>finish-print</samp>, …). Define your own actions and use them consistently, canonical actions are not (yet) specified",
"type": "string"
},
"t": {
"description": "Unix timestamp when the event occurred",
"type": "number"
},
"extra": {
"description": "A custom text field to give more information about the event",
"type": "string"
}
}
}
},
"contact": {
"description": "Contact information about your space",
"type": "object",
"properties": {
"phone": {
"description": "Phone number, including country code with a leading plus sign. Example: <samp>+1 800 555 4567</samp>",
"type": "string"
},
"sip": {
"description": "URI for Voice-over-IP via SIP. Example: <samp>sip:yourspace@sip.example.org</samp>",
"type": "string"
},
"keymaster": {
"description": "Phone numbers of people who carry a key and are able to open the space upon request. Example: <samp>['+1 800 555 4567','+1 800 555 4544']</samp>",
"type": "array",
"items": {
"type": "string"
}
},
"irc": {
"description": "URL of the IRC channel, in the form <samp>irc://example.org/#channelname</samp>",
"type": "string"
},
"twitter": {
"description": "Twitter handle, with leading @",
"type": "string"
},
"email": {
"description": "E-mail address for contacting your space",
"type": "string"
},
"ml": {
"description": "The e-mail address of your mailing list. If you use Google Groups then the e-mail looks like <samp>your-group@googlegroups.com</samp>.",
"type": "string"
},
"jabber": {
"description": "A public Jabber/XMPP multi-user chatroom in the form <samp>chatroom@conference.example.net</samp>",
"type": "string"
}
}
},
"icon": {
"description": "Icons that show the status graphically",
"type": "object",
"properties": {
"open": {
"description": "The URL to your customized space logo showing an open space",
"type": "string"
},
"closed": {
"description": "The URL to your customized space logo showing a closed space",
"type": "string"
}
},
"required": [
"open",
"closed"
]
},
"sensors": {
"description": "Data of various sensors in your space (e.g. temperature, humidity, amount of Club-Mate left, …). The only canonical property is the <em>temp</em> property, additional sensor types may be defined by you. In this case, you are requested to share your definition for inclusion in this specification.",
"type": "array",
"items": {
"type": "object",
"properties": {
"temp": {
"description": "A mapping of measuring locations to temperature values. The values should match the basic regular expression <code>^[+-]?[0-9]+(\\.[0-9]+)?[FCK]$</code>. Example: <samp>{'kitchen':'48F', 'storage':'-273.1K'}</samp>",
"type": "object"
}
}
}
},
"feeds": {
"description": "Feeds where users can get updates of your space",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "A mnemonic identifier, like <samp>wiki</samp>, <samp>blog</samp>, etc.",
"type": "string"
},
"type": {
"description": "Type of the feed, for example <samp>rss</samp>, <samp>atom</atom>, <samp>ical</samp>",
"type": "string"
},
"url": {
"description": "Feed URL",
"type": "string"
}
},
"required": [
"name",
"url"
]
}
}
},
"required": [
"api",
"space",
"logo",
"url",
"open",
"icon"
]
}