{ "openapi": "3.0.0", "info": { "title": "RES LEVIS API", "description": "API for RES LEVIS project", "contact": { "email": "info@reslevis.com" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "1.0.4" }, "servers": [ { "url": "https://192.168.1.3:5050/reslevis", "description": "Res Levis API Server" }, { "url": "https://webhook.site/014887a9-bfa4-48a8-a349-935d8f8f8096", "description": "Res Levis Webhook" } ], "tags": [ { "name": "Admins", "description": "Secured Admin-only calls" }, { "name": "Developers", "description": "Operations available to regular developers" } ], "paths": { "/getBuildings": { "get": { "tags": [ "Developers" ], "summary": "Get the buildings", "description": "Get the buildings\n", "operationId": "getBuildings", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BuildingItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postBuilding": { "post": { "tags": [ "Developers" ], "summary": "Post a building item", "description": "Post a building", "operationId": "postBuilding", "requestBody": { "description": "plan item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BuildingItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeBuilding": { "post": { "tags": [ "Developers" ], "summary": "Remove a building item", "description": "Remove a building", "operationId": "removeBuilding", "requestBody": { "description": "plan item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getPlans": { "get": { "tags": [ "Developers" ], "summary": "Get the plans", "description": "Get the plans\n", "operationId": "getPlans", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlanItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postPlan": { "post": { "tags": [ "Developers" ], "summary": "Post a plan item", "description": "Post a plan", "operationId": "postPlan", "requestBody": { "description": "plan item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlanItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removePlan": { "post": { "tags": [ "Developers" ], "summary": "Remove a plan item", "description": "Remove a plan", "operationId": "removePlan", "requestBody": { "description": "plan item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getZones": { "get": { "tags": [ "Developers" ], "summary": "Get the zones", "description": "Get the zones\n", "operationId": "getZones", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ZoneItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postZone": { "post": { "tags": [ "Developers" ], "summary": "Post a zone item", "description": "Post a zone item", "operationId": "postZone", "requestBody": { "description": "zone item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ZoneItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeZone": { "post": { "tags": [ "Developers" ], "summary": "Remove a plan item", "description": "Remove a plan", "operationId": "removeZone", "requestBody": { "description": "zone item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getGateways": { "get": { "tags": [ "Developers" ], "summary": "Get the gateways", "description": "Get the gateways\n", "operationId": "getGateways", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GatewayItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postGateway": { "post": { "tags": [ "Developers" ], "summary": "Post a gateway item", "description": "Post a gateway item", "operationId": "postGateway", "requestBody": { "description": "gateway item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GatewayItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeGateway": { "post": { "tags": [ "Developers" ], "summary": "Remove a gateway item", "description": "Remove a gateway", "operationId": "removeGateway", "requestBody": { "description": "gateway item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getTrackers": { "get": { "tags": [ "Developers" ], "summary": "Get the trackers", "description": "Get the trackers\n", "operationId": "getTrackers", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrackerItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postTracker": { "post": { "tags": [ "Developers" ], "summary": "Post a tracker item", "description": "Post a tracker item", "operationId": "postTracker", "requestBody": { "description": "tracker item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackerItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeTracker": { "post": { "tags": [ "Developers" ], "summary": "Remove a tracker item", "description": "Remove a tracker", "operationId": "removeTracker", "requestBody": { "description": "tracker item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getOperators": { "get": { "tags": [ "Developers" ], "summary": "Get the operators", "description": "Get the operators\n", "operationId": "getOperators", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OperatorItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postOperator": { "post": { "tags": [ "Developers" ], "summary": "Post an operator item", "description": "Post an operator item", "operationId": "postOperator", "requestBody": { "description": "operator item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeOperator": { "post": { "tags": [ "Developers" ], "summary": "Remove an operator item", "description": "Remove an operator", "operationId": "removeOperator", "requestBody": { "description": "operator item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getSubjects": { "get": { "tags": [ "Developers" ], "summary": "Get the subjects", "description": "Get the subjects\n", "operationId": "getSubjects", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SubjectItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postSubject": { "post": { "tags": [ "Developers" ], "summary": "Post a subject item", "description": "Post a subject", "operationId": "postSubject", "requestBody": { "description": "subject item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubjectItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeSubject": { "post": { "tags": [ "Developers" ], "summary": "Remove a subject item", "description": "Remove a subject", "operationId": "removeSubject", "requestBody": { "description": "subject item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getAlarms": { "get": { "tags": [ "Developers" ], "summary": "Get the alarms", "description": "Get the alarms\n", "operationId": "getAlarms", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AlarmItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postAlarm": { "post": { "tags": [ "Developers" ], "summary": "Post an alarm", "description": "Post an alarm", "operationId": "postAlarm", "requestBody": { "description": "alarm item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlarmItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeAlarm": { "post": { "tags": [ "Developers" ], "summary": "Remove an alarm item", "description": "Remove an alarm", "operationId": "removeAlarm", "requestBody": { "description": "alarm item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getTracks": { "get": { "tags": [ "Developers" ], "summary": "Get the tracks", "description": "Get the tracks\n", "operationId": "getTracks", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrackItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postTrack": { "post": { "tags": [ "Developers" ], "summary": "Post a track", "description": "Post a track", "operationId": "postTrack", "requestBody": { "description": "track item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeTrack": { "post": { "tags": [ "Developers" ], "summary": "Remove a track item", "description": "Remove a track", "operationId": "removeTrack", "requestBody": { "description": "track item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] }, "/getSettings": { "get": { "tags": [ "Developers" ], "summary": "Get the groups of settings", "description": "Get the settings\n", "operationId": "getSettings", "parameters": [ { "name": "id", "in": "query", "description": "id of the item to get", "required": false, "schema": { "type": "string" } }, { "name": "searchString", "in": "query", "description": "pass an optional search string for looking up inventory", "required": false, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "description": "number of records to skip for pagination", "required": false, "schema": { "minimum": 0, "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "maximum number of records to return", "required": false, "schema": { "maximum": 1000, "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "search results matching criteria", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrackItem" } } } } }, "400": { "description": "bad input parameter" } } }, "servers": [ { "url": "", "description": "" } ] }, "/postSetting": { "post": { "tags": [ "Developers" ], "summary": "Post a group of settings", "description": "Post a group settings", "operationId": "postSetting", "requestBody": { "description": "group of settings item", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingItem" } } } }, "responses": { "201": { "description": "item created" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "an existing item already exists" } } }, "servers": [ { "url": "", "description": "" } ] }, "/removeSetting": { "post": { "tags": [ "Developers" ], "summary": "Remove a group of settings item", "description": "Remove a group of settings", "operationId": "removeSetting", "requestBody": { "description": "group of setting item to be removed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/removeItem" } } } }, "responses": { "201": { "description": "item removed" }, "400": { "description": "invalid input, object invalid" }, "409": { "description": "the item can't be removed" } } }, "servers": [ { "url": "", "description": "" } ] } }, "components": { "schemas": { "removeItem": { "required": [ "id" ], "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } }, "description": "Item to be removed" }, "BuildingItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID", "format": "uuid" }, "name": { "type": "string", "description": "Name", "example": "Hospital" }, "city": { "type": "string", "description": "City" }, "address": { "type": "string", "description": "Address" }, "latitude": { "type": "number", "description": "Latitude" }, "longitude": { "type": "number", "description": "Longitude" } }, "description": "A building or an area that groups together several plan" }, "PlanItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID", "format": "uuid" }, "name": { "type": "string", "description": "Name", "example": "Building 1 - Floor 1" }, "image": { "type": "string", "description": "Image", "format": "uri", "example": "The URL of the image" }, "scale": { "type": "number", "description": "Scale", "example": 1 }, "Building": { "type": "string", "description": "Building", "format": "dbid" } }, "description": "A plan is floor or a space of a building" }, "ZoneItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID", "format": "uuid" }, "name": { "type": "string", "description": "Name", "example": "Floor 1 - Room 1" }, "groups": { "type": "string", "description": "Groups" }, "Plan": { "type": "string", "description": "Plan", "format": "dbid" }, "Building": { "type": "string", "description": "Building", "format": "dbid" } }, "description": "A zone is a room or a sub-area of a plan" }, "GatewayItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID", "format": "uuid" }, "name": { "type": "string", "description": "Name" }, "mac": { "type": "string", "description": "MAC" }, "status": { "type": "boolean", "description": "Status" }, "model": { "type": "string", "description": "Model" }, "ip": { "type": "string", "description": "IP" }, "position": { "type": "string", "description": "Position" }, "x": { "type": "number", "description": "X" }, "y": { "type": "number", "description": "Y" }, "Plan": { "type": "string", "description": "Plan", "format": "dbid" }, "Zone": { "type": "string", "description": "Zone", "format": "dbid" }, "Building": { "type": "string", "description": "Building", "format": "dbid" }, "notes": { "type": "string", "description": "Notes" } }, "description": "A gateway of the system" }, "TrackerItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID", "format": "uuid" }, "name": { "type": "string", "description": "Name" }, "mac": { "type": "string", "description": "MAC" }, "status": { "type": "string", "description": "Status" }, "model": { "type": "string", "description": "Model" }, "position": { "type": "string", "description": "Position" }, "x": { "type": "number", "description": "X" }, "y": { "type": "number", "description": "Y" }, "Zone": { "type": "string", "description": "Zone", "format": "dbid" }, "Building": { "type": "string", "description": "Building", "format": "dbid" }, "notes": { "type": "string", "description": "Notes" } }, "description": "A tracker of the system" }, "OperatorItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID" }, "name": { "type": "string", "description": "Name" }, "phone": { "type": "string", "description": "Phone" }, "zones": { "type": "string", "description": "Zones" }, "groups": { "type": "string", "description": "Groups" }, "notes": { "type": "string", "description": "Notes" }, "Building": { "type": "string", "description": "Building", "format": "dbid" } }, "description": "An operator who monitors the subjects" }, "SubjectItem": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID" }, "name": { "type": "string", "description": "Name" }, "role": { "type": "string", "description": "Role" }, "phone": { "type": "string", "description": "Phone" }, "zones": { "type": "string", "description": "Zones" }, "groups": { "type": "string", "description": "Groups" }, "Building": { "type": "string", "description": "Building", "format": "dbid" }, "notes": { "type": "string", "description": "Notes" } }, "description": "Person or object monitored by the operators" }, "AlarmItem": { "required": [ "id" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID" }, "time": { "type": "string", "description": "Time", "format": "time" }, "type": { "type": "string", "description": "Type" }, "status": { "type": "string", "description": "Status" }, "gateway": { "type": "string", "description": "Gateway", "format": "uuid" }, "gatewayMac": { "type": "string", "description": "Gateway MAC" }, "gatewayName": { "type": "string", "description": "Gateway name" }, "Tracker": { "type": "string", "description": "Tracker", "format": "dbid" }, "trackerMac": { "type": "string", "description": "Tracker MAC" }, "trackerName": { "type": "string", "description": "Tracker name" }, "Subject": { "type": "string", "description": "Subject", "format": "dbid" }, "subjectName": { "type": "string", "description": "Subject name" }, "Operator": { "type": "string", "description": "Operator", "format": "dbid" }, "operatorName": { "type": "string", "description": "Operator name" }, "Zone": { "type": "string", "description": "Zone", "format": "dbid" }, "zoneName": { "type": "string", "description": "Zone name" }, "Building": { "type": "string", "description": "Building", "format": "dbid" }, "buildingName": { "type": "string", "description": "Building name" } }, "description": "Alarm triggered if a monitored subject is lost or out of their zone" }, "TrackItem": { "required": [ "id" ], "type": "object", "properties": { "id": { "type": "string" }, "time": { "type": "string", "description": "Time", "format": "date-time" }, "type": { "type": "string", "description": "Type" }, "status": { "type": "string", "description": "Status", "enum": [ "lost", "detected", "away", "help" ] }, "Gateway": { "type": "string", "description": "Gateway", "format": "dbid" }, "gatewayMac": { "type": "string", "description": "Gateway MAC" }, "gatewayName": { "type": "string", "description": "Gateway name" }, "Tracker": { "type": "string", "description": "Tracker", "format": "dbid" }, "trackerMac": { "type": "string", "description": "Tracker MAC" }, "trackerName": { "type": "string", "description": "Tracker name" }, "Subject": { "type": "string", "description": "Subject", "format": "dbid" }, "subjectName": { "type": "string", "description": "Subject name" }, "Zone": { "type": "string", "description": "Zone", "format": "dbid" }, "zoneName": { "type": "string", "description": "Zone name" }, "signal": { "type": "number" }, "Building": { "type": "string", "description": "Building", "format": "dbid" }, "buildingName": { "type": "string", "description": "Building name" } }, "description": "Log of a state change of a tracker with respect to a gateway" }, "SettingItem": { "required": [ "id" ], "type": "object", "properties": { "id": { "type": "string", "description": "ID" }, "name": { "type": "string", "description": "Setting name" }, "role": { "type": "string", "description": "Role", "enum": [ "developer", "administrator", "user" ] }, "debug": { "type": "boolean", "description": "Debug mode", "format": "boolean" } }, "description": "General setting of the app" } } } }