{
"description": "SpaceAPI 0.9",
"type": "object",
"properties": {
"api": {
"description": "The version of SpaceAPI your endpoint uses",
"type": "string",
"enum": [
"0.9"
]
},
"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: {'mp4':'http//example.org/stream.mpg', 'mjpeg':'http://example.org/stream.mjpeg'}",
"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 'open for public', 'members only' 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. J. Random Hacker, fridge, 3D printer, \u2026)",
"type": "string"
},
"type": {
"description": "Action (e.g. check-in, check-out, finish-print, \u2026). Define your own actions and use them consistently, canonical actions are not (yet) specified",
"type": "string"
},
"t": {
"description": "Unix timestamp when the event occured",
"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: +1 800 555 4567",
"type": "string"
},
"sip": {
"description": "URI for Voice-over-IP via SIP. Example: sip:yourspace@sip.example.org",
"type": "string"
},
"keymaster": {
"description": "Phone numbers of people who carry a key and are able to open the space upon request. Example: ['+1 800 555 4567','+1 800 555 4544']",
"type": "array",
"items": {
"type": "string"
}
},
"irc": {
"description": "URL of the IRC channel, in the form irc://example.org/#channelname",
"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 your-group@googlegroups.com.",
"type": "string"
},
"jabber": {
"description": "A public Jabber/XMPP multi-user chatroom in the form chatroom@conference.example.net",
"type": "string"
}
}
}
},
"required": [
"api",
"space",
"logo",
"url",
"open"
]
}