{ "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" ] }