{ "swagger": "2.0", "info": { "description": "This is your spaces SpaceApi definition", "version": "0.0.1", "title": "SpaceApi Daemon", "termsOfService": "https://example.com/daemon/terms", "contact": { "email": "spaceapidaemon@example.com" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } }, "basePath": "/api", "securityDefinitions": { "Bearer": { "type": "apiKey", "name": "Authorization", "in": "header" } }, "paths": { "/": { "get": { "tags": [ "root" ], "summary": "your space status", "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SpaceApi" } }, "500": { "description": "something went wrong" } } } }, "/base": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "basedata" ], "summary": "Change the space name", "parameters": [ { "in": "body", "name": "body", "description": "Pet object that needs to be added to the store", "required": true, "schema": { "$ref": "#/definitions/Space" } } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Space" } }, "405": { "description": "Invalid input" } } } }, "/location": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "location" ], "summary": "Change the location of your space", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Location" } } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/Location" } }, "405": { "description": "Invalid input" } } } }, "/state": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "state" ], "summary": "Change the state of your space, lastchange will be generated if omitted and the state has changed", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/State" } } ], "responses": { "201": { "description": "successful operation", "schema": { "$ref": "#/definitions/State" } }, "405": { "description": "Invalid input" } } } }, "/contact/phone": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/sip": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/irc": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/twitter": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/facebook": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/identica": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/foursquare": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/email": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/ml": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/jabber": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/issuemail": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Change your spaces phonenumber", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SingleValue" } }, "405": { "description": "Invalid input" } } } }, "/contact/keymasters": { "post": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Adds a keymaster", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Keymaster" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Keymaster" } }, "405": { "description": "Invalid input" } } } }, "/contact/keymasters/{name}": { "delete": { "security": [ { "Bearer": [] } ], "tags": [ "contact" ], "summary": "Delete a keymaster", "parameters": [ { "in": "path", "name": "name", "required": true, "type": "string" } ], "responses": { "200": { "description": "successful operation" } } } }, "/feeds/blog": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "feeds" ], "summary": "Change your spaces blog", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Feed" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Feed" } }, "405": { "description": "Invalid input" } } } }, "/feeds/wiki": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "feeds" ], "summary": "Change your spaces wiki", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Feed" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Feed" } }, "405": { "description": "Invalid input" } } } }, "/feeds/calendar": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "feeds" ], "summary": "Change your spaces calendar", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Feed" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Feed" } }, "405": { "description": "Invalid input" } } } }, "/feeds/flickr": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "feeds" ], "summary": "Change your spaces flickr", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Feed" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Feed" } }, "405": { "description": "Invalid input" } } } }, "/issue_report_channels": { "post": { "security": [ { "Bearer": [] } ], "tags": [ "issue report channels" ], "summary": "Add issue report channel", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SingleValue" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Keymaster" } }, "405": { "description": "Invalid input" } } } }, "/issue_report_channels/{name}": { "delete": { "security": [ { "Bearer": [] } ], "tags": [ "issue report channels" ], "summary": "Remove issue report channel", "parameters": [ { "in": "path", "name": "name", "required": true, "type": "string" } ], "responses": { "200": { "description": "successful operation" } } } }, "/sensors/temperature/{location}": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "change temperature sensor", "parameters": [ { "in": "path", "name": "location", "required": true, "type": "string" }, { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Temperature" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Temperature" } }, "405": { "description": "Invalid input" } } }, "delete": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "delete temperature sensor", "parameters": [ { "in": "path", "name": "location", "required": true, "type": "string" } ], "responses": { "204": { "description": "successful operation" }, "405": { "description": "Invalid input" } } } }, "/sensors/temperature": { "post": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "add temperature sensor", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Temperature" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Temperature" } }, "405": { "description": "Invalid input" } } } }, "/sensors/door_locked/{location}": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "change door sensor", "parameters": [ { "in": "path", "name": "location", "required": true, "type": "string" }, { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/DoorLocked" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/DoorLocked" } }, "405": { "description": "Invalid input" } } }, "delete": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "delete door sensor", "parameters": [ { "in": "path", "name": "location", "required": true, "type": "string" } ], "responses": { "204": { "description": "successful operation" }, "405": { "description": "Invalid input" } } } }, "/sensors/door_locked": { "post": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "add temperature sensor", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/DoorLocked" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/DoorLocked" } }, "405": { "description": "Invalid input" } } } }, "/sensors/humidity/{location}": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "change humidity sensor", "parameters": [ { "in": "path", "name": "location", "required": true, "type": "string" }, { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Humidity" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Humidity" } }, "405": { "description": "Invalid input" } } }, "delete": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "delete humidity sensor", "parameters": [ { "in": "path", "name": "location", "required": true, "type": "string" } ], "responses": { "204": { "description": "successful operation" }, "405": { "description": "Invalid input" } } } }, "/sensors/humidity": { "post": { "security": [ { "Bearer": [] } ], "tags": [ "sensors" ], "summary": "add humidity sensor", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Humidity" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Humidity" } }, "405": { "description": "Invalid input" } } } }, "/history/state": { "get": { "tags": [ "history" ], "responses": { "200": { "description": "successful operation", "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/State" } } } } } } } }, "/importN39History": { "get": { "security": [ { "Bearer": [] } ], "tags": [ "import" ], "responses": { "200": { "description": "successful operation" } } } }, "/importJsonFile": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "import" ], "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/SpaceApi" } } ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/SpaceApi" } } } } }, "/token": { "get": { "security": [ { "Bearer": [] } ], "tags": [ "token" ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Token" } } } }, "delete": { "security": [ { "Bearer": [] } ], "tags": [ "token" ], "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/Token" } } ], "responses": { "204": { "description": "successful operation" } } }, "post": { "security": [ { "Bearer": [] } ], "tags": [ "token" ], "responses": { "200": { "description": "successful operation", "schema": { "$ref": "#/definitions/Token" } } } } } }, "definitions": { "Token": { "type": "object", "properties": { "token": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ" } } }, "SingleValue": { "type": "object", "properties": { "value": { "type": "string", "example": "a value" } } }, "Keymaster": { "type": "object", "properties": { "name": { "type": "string", "example": "Edward Snowden" }, "irc_nick": { "type": "string", "example": "snowden" }, "phone": { "type": "string", "example": "+15791234567" }, "email": { "type": "string", "example": "info [at] freedom [dot] press" }, "twitter": { "type": "string", "example": "@Snowden" } } }, "Feed": { "type": "object", "required": [ "url" ], "properties": { "type": { "type": "string", "example": "rss" }, "url": { "type": "string", "example": "https://example.com/feed.rss" } } }, "Space": { "type": "object", "required": [ "space", "logo", "url" ], "properties": { "space": { "type": "string", "example": "Chaosdorf" }, "logo": { "type": "string", "example": "https://example.com/logo.png" }, "url": { "type": "string", "example": "https://example.com" } } }, "Location": { "type": "object", "properties": { "address": { "type": "string", "example": "Huettenstrasse 25, 40210 Duesseldorf" }, "lon": { "type": "number", "example": 52.12345 }, "lat": { "type": "number", "example": 7.654321 } } }, "Icon": { "type": "object", "properties": { "open": { "type": "string", "example": "https://example.com/openicon.png" }, "closed": { "type": "string", "example": "https://example.com/closedicon.png" } } }, "SpaceFed": { "type": "object", "properties": { "spacenet": { "type": "boolean", "example": false }, "spacesaml": { "type": "boolean", "example": true }, "spacephone": { "type": "boolean", "example": false } } }, "Stream": { "type": "object", "properties": { "m4": { "type": "string", "example": "https://example.com/foo.m4" }, "mjpeg": { "type": "string", "example": "https://example.com/foo.mjpeg" }, "ustream": { "type": "string", "example": "https://example.com/foo.ustream" } } }, "State": { "type": "object", "required": [ "open" ], "properties": { "open": { "type": "boolean", "example": true }, "lastchange": { "type": "integer", "example": 123456789 }, "trigger_person": { "type": "string", "example": "Wau Holland" }, "message": { "type": "string", "example": "first!!!" } } }, "Event": { "type": "object", "properties": { "name": { "type": "string", "example": "Rosetta" }, "type": { "type": "string", "example": "mission-started" }, "timestamp": { "type": "number", "example": 1078211871 }, "extra": { "type": "string", "example": "Gonna harpoon that fucker!" } } }, "Contact": { "type": "object", "properties": { "phone": { "type": "string", "example": 4915791234567 }, "irc": { "type": "string", "example": "irc://irc.hackint.org/#chaosdorf" }, "twitter": { "type": "string", "example": "@chaosdorf" }, "facebook": { "type": "string", "example": "https://www.facebook.com/pages/riechtnachlulu" }, "google": { "type": "string", "example": "g+ is dead" }, "foursquare": { "type": "string", "example": "deadbeefdeadbeef" }, "email": { "type": "string", "example": "info@chaosdorf.de" }, "ml": { "type": "string", "example": "intern@lists.chaosdorf.de" }, "issue_email": { "type": "string", "example": "support@chaosdorf.de" } } }, "Temperature": { "type": "object", "required": [ "value", "unit", "location" ], "properties": { "value": { "type": "number", "example": 23.5 }, "unit": { "type": "string", "example": "°C" }, "location": { "type": "string", "example": "Kitchen" }, "name": { "type": "string", "example": "Kitchen Sensor" }, "description": { "type": "string", "example": "Sensor! Sensor! Hey! Hey!" } } }, "DoorLocked": { "type": "object", "required": [ "value", "location" ], "properties": { "value": { "type": "boolean", "example": true }, "location": { "type": "string", "example": "Cellar Entrance" }, "name": { "type": "string", "example": "Cellar Main Door" }, "description": { "type": "string", "example": "Sensor! Sensor! Hey! Hey!" } } }, "Barometer": { "type": "object", "required": [ "value", "unit", "location" ], "properties": { "value": { "type": "number", "example": 1024 }, "unit": { "type": "string", "example": "hPa" }, "location": { "type": "string", "example": "Outside" }, "name": { "type": "string", "example": "Dosenbarometer" }, "description": { "type": "string", "example": "Sensor! Sensor! Hey! Hey!" } } }, "Radiation": { "type": "object", "required": [ "value", "unit" ], "properties": { "value": { "type": "number" }, "unit": { "type": "string" }, "dead_time": { "type": "number" }, "conversion_factor": { "type": "number" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "Radiations": { "type": "object", "properties": { "alpha": { "$ref": "#/definitions/Radiation" }, "beta": { "$ref": "#/definitions/Radiation" }, "gamma": { "$ref": "#/definitions/Radiation" }, "beta_gamma": { "$ref": "#/definitions/Radiation" } } }, "Humidity": { "type": "object", "required": [ "value", "unit", "location" ], "properties": { "value": { "type": "number" }, "unit": { "type": "number" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "BeverageSupply": { "type": "object", "required": [ "value", "unit" ], "properties": { "value": { "type": "number" }, "unit": { "type": "number" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "PowerConsumption": { "type": "object", "required": [ "value", "unit", "location" ], "properties": { "value": { "type": "number" }, "unit": { "type": "number" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "ValueUnit": { "type": "object", "required": [ "value", "unit" ], "properties": { "value": { "type": "number" }, "unit": { "type": "number" } } }, "WindProperties": { "type": "object", "properties": { "speed": { "$ref": "#/definitions/ValueUnit" }, "gust": { "$ref": "#/definitions/ValueUnit" }, "direction": { "$ref": "#/definitions/ValueUnit" }, "elevation": { "$ref": "#/definitions/ValueUnit" } } }, "Wind": { "type": "object", "required": [ "properties", "location" ], "properties": { "properties": { "$ref": "#/definitions/WindProperties" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "Machine": { "type": "object", "required": [ "mac" ], "properties": { "name": { "type": "string" }, "mac": { "type": "string" } } }, "NetworkConnection": { "type": "object", "required": [ "value" ], "properties": { "type": { "type": "string" }, "value": { "type": "number" }, "machines": { "type": "array", "items": { "$ref": "#/definitions/Machine" } }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "AccountBalance": { "type": "object", "required": [ "value", "unit" ], "properties": { "value": { "type": "number" }, "unit": { "type": "string" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "TotalMemberCount": { "type": "object", "required": [ "value" ], "properties": { "value": { "type": "number" }, "location": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "PeopleNowPresent": { "type": "object", "required": [ "value" ], "properties": { "value": { "type": "number" }, "location": { "type": "string" }, "name": { "type": "string" }, "names": { "type": "array" }, "description": { "type": "string" } } }, "Sensors": { "type": "object", "properties": { "temperature": { "type": "array", "items": { "$ref": "#/definitions/Temperature" } }, "door_locked": { "type": "array", "items": { "$ref": "#/definitions/DoorLocked" } }, "barometer": { "type": "array", "items": { "$ref": "#/definitions/Barometer" } }, "radiation": { "$ref": "#/definitions/Radiations" }, "humidity": { "type": "array", "items": { "$ref": "#/definitions/Humidity" } }, "beverage_supply": { "type": "array", "items": { "$ref": "#/definitions/BeverageSupply" } }, "power_consumption": { "type": "array", "items": { "$ref": "#/definitions/PowerConsumption" } }, "wind": { "type": "array", "items": { "$ref": "#/definitions/Wind" } }, "network_connections": { "type": "array", "items": { "$ref": "#/definitions/NetworkConnection" } }, "account_balance": { "type": "array", "items": { "$ref": "#/definitions/AccountBalance" } }, "total_member_count": { "type": "array", "items": { "$ref": "#/definitions/TotalMemberCount" } }, "people_now_present": { "type": "array", "items": { "$ref": "#/definitions/PeopleNowPresent" } } } }, "Feeds": { "type": "object", "properties": { "blog": { "type": "array", "items": { "$ref": "#/definitions/Feed" } }, "wiki": { "type": "array", "items": { "$ref": "#/definitions/Feed" } }, "calendar": { "type": "array", "items": { "$ref": "#/definitions/Feed" } }, "flickr": { "type": "array", "items": { "$ref": "#/definitions/Feed" } } } }, "Cache": { "properties": { "schedule": { "type": "string", "example": "m.02" } } }, "RadioShow": { "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "type": { "type": "string" }, "start": { "type": "string" }, "end": { "type": "string" } } }, "SpaceApi": { "type": "object", "properties": { "version": { "type": "string", "example": "0.13" }, "space": { "type": "string", "example": "Chaosdorf" }, "logo": { "type": "string", "example": "https://example.com/logo.png" }, "url": { "type": "string", "example": "https://example.com" }, "location": { "$ref": "#/definitions/Location" }, "spacefed": { "$ref": "#/definitions/SpaceFed" }, "cam": { "type": "array", "example": [ "https://example.com/myfancycam.mp4" ] }, "stream": { "$ref": "#/definitions/Stream" }, "state": { "$ref": "#/definitions/State" }, "events": { "type": "array", "items": { "$ref": "#/definitions/Event" } }, "contact": { "$ref": "#/definitions/Contact" }, "issue_report_channels": { "type": "array", "example": [ "ml" ] }, "sensors": { "$ref": "#/definitions/Sensors" }, "feeds": { "$ref": "#/definitions/Feeds" }, "cache": { "$ref": "#/definitions/Cache" }, "radio_show": { "$ref": "#/definitions/RadioShow" }, "projects": { "type": "array" } } } }, "externalDocs": { "description": "Find out more about spaceApi daemon", "url": "https://example.net/daemon" } }