{ "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: {'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" } } }, "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, \u2026). The only canonical property is the temp 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 ^[+-]?[0-9]+(\\.[0-9]+)?[FCK]$. Example: {'kitchen':'48F', 'storage':'-273.1K'}", "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 wiki, blog, etc.", "type": "string" }, "type": { "description": "Type of the feed, for example rss, atom, ical", "type": "string" }, "url": { "description": "Feed URL", "type": "string" } }, "required": [ "name", "url" ] } } }, "required": [ "api", "space", "logo", "url", "open", "icon" ] }