{
   "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.5"
   },
   "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": "building 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": {
         "delete": {
            "tags": [
               "Developers"
            ],
            "summary": "Remove a building item",
            "description": "Remove a building",
            "operationId": "removeBuilding",
            "requestBody": {
               "description": "floor 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": ""
            }
         ]
      },
      "/getFloors": {
         "get": {
            "tags": [
               "Developers"
            ],
            "summary": "Get the floors",
            "description": "Get the floors\n",
            "operationId": "getFloors",
            "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/FloorItem"
                           }
                        }
                     }
                  }
               },
               "400": {
                  "description": "bad input parameter"
               }
            }
         },
         "servers": [
            {
               "url": "",
               "description": ""
            }
         ]
      },
      "/postFloor": {
         "post": {
            "tags": [
               "Developers"
            ],
            "summary": "Post a floor item",
            "description": "Post a floor",
            "operationId": "postFloor",
            "requestBody": {
               "description": "floor item",
               "content": {
                  "application/json": {
                     "schema": {
                        "$ref": "#/components/schemas/FloorItem"
                     }
                  }
               }
            },
            "responses": {
               "201": {
                  "description": "item created"
               },
               "400": {
                  "description": "invalid input, object invalid"
               },
               "409": {
                  "description": "an existing item already exists"
               }
            }
         },
         "servers": [
            {
               "url": "",
               "description": ""
            }
         ]
      },
      "/removeFloor": {
         "delete": {
            "tags": [
               "Developers"
            ],
            "summary": "Remove a floor item",
            "description": "Remove a floor",
            "operationId": "removeFloor",
            "requestBody": {
               "description": "floor 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": {
         "delete": {
            "tags": [
               "Developers"
            ],
            "summary": "Remove a zone item",
            "description": "Remove a zone",
            "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": {
         "delete": {
            "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": {
         "delete": {
            "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": ""
            }
         ]
      },
      "/getTrackerZones": {
         "get": {
            "tags": [
               "Developers"
            ],
            "summary": "Get the tracker zones",
            "description": "Get the tracker zones\n",
            "operationId": "getTrackerZones",
            "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/trackerZonesItem"
                           }
                        }
                     }
                  }
               },
               "400": {
                  "description": "bad input parameter"
               }
            }
         },
         "servers": [
            {
               "url": "",
               "description": ""
            }
         ]
      },
      "/postTrackerZone": {
         "post": {
            "tags": [
               "Developers"
            ],
            "summary": "Post a tracker zone item",
            "description": "Post a tracker zone item",
            "operationId": "postTrackerZone",
            "requestBody": {
               "description": "tracker zone item",
               "content": {
                  "application/json": {
                     "schema": {
                        "$ref": "#/components/schemas/trackerZoneItem"
                     }
                  }
               }
            },
            "responses": {
               "201": {
                  "description": "item created"
               },
               "400": {
                  "description": "invalid input, object invalid"
               },
               "409": {
                  "description": "an existing item already exists"
               }
            }
         },
         "servers": [
            {
               "url": "",
               "description": ""
            }
         ]
      },
      "/removeTrackerZone": {
         "delete": {
            "tags": [
               "Developers"
            ],
            "summary": "Remove a tracker zone item",
            "description": "Remove a tracker zone item",
            "operationId": "removeTrackerZone",
            "requestBody": {
               "description": "tracker zone item to be removed",
               "content": {
                  "application/json": {
                     "schema": {
                        "$ref": "#/components/schemas/trackerZoneItem"
                     }
                  }
               }
            },
            "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": {
         "delete": {
            "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": {
         "delete": {
            "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": {
         "delete": {
            "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": {
         "delete": {
            "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": {
         "delete": {
            "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 floors"
         },
         "floorItem": {
            "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"
               },
               "description": {
                  "type": "string",
                  "description": "Description",
                  "example": "The description of the floor"
               },
               "scale": {
                  "type": "number",
                  "description": "Scale",
                  "example": 1
               },
               "building": {
                  "type": "string",
                  "description": "Building",
                  "format": "dbid"
               }
            },
            "description": "A 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"
               },
               "floor": {
                  "type": "string",
                  "description": "Floor",
                  "format": "dbid"
               },
               "building": {
                  "type": "string",
                  "description": "Building",
                  "format": "dbid"
               }
            },
            "description": "A zone is a room or a sub-area of a floor"
         },
         "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"
               },
               "floor": {
                  "type": "string",
                  "description": "Floor",
                  "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"
               },
               "building": {
                  "type": "string",
                  "description": "Building",
                  "format": "dbid"
               },
               "floor": {
                  "type": "string",
                  "description": "Floor",
                  "format": "dbid"
               },
               "notes": {
                  "type": "string",
                  "description": "Notes"
               }
            },
            "description": "A tracker of the system"
         },
         "trackerZoneItem": {
            "required": [
               "id",
               "name"
            ],
            "type": "object",
            "properties": {
               "id": {
                  "type": "string",
                  "description": "ID",
                  "format": "uuid"
               },
               "name": {
                  "type": "string",
                  "description": "Name"
               },
               "trackerList": {
                  "type": "array",
                  "description": "List of trackers"
               },
               "zone": {
                  "type": "string",
                  "description": "Zone",
                  "format": "dbid"
               },
               "days": {
                  "type": "string",
                  "format": "list",
                  "description": "Days"
               },
               "hours": {
                  "type": "string",
                  "format": "list",
                  "description": "Hours"
               }
            },
            "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",
                  "enum": [
                     "away",
                     "help",
                     "managed"
                  ]
               },
               "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"
               },
               "operator": {
                  "type": "string",
                  "description": "Operator",
                  "format": "dbid"
               },
               "building": {
                  "type": "string",
                  "description": "Building",
                  "format": "dbid"
               },
               "floor": {
                  "type": "string",
                  "description": "Floor",
                  "format": "dbid"
               }
            },
            "description": "Alarm triggered if a monitored subject is lost or out of their zone"
         },
         "trackItem": {
            "required": [
               "id"
            ],
            "type": "object",
            "properties": {
               "id": {
                  "type": "string"
               },
               "timestamp": {
                  "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"
               },
               "signal": {
                  "type": "number"
               },
               "building": {
                  "type": "string",
                  "description": "Building",
                  "format": "dbid"
               },
               "buildingName": {
                  "type": "string",
                  "description": "Building name"
               },
               "floor": {
                  "type": "string",
                  "description": "Floor",
                  "format": "dbid"
               },
               "floorName": {
                  "type": "string",
                  "description": "Floor 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"
         }
      }
   }
}