{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/kontaktio/main/json-schema/kontaktio-floors-schema.json", "title": "Floors", "description": "Smart Location Floor. Includes floor building and gateways located in the floor's rooms.", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/kontaktio-floors-api-openapi.yml#/components/schemas/Floors", "type": "object", "properties": { "content": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "object", "properties": { "id": { "type": "number", "description": "Floor Id." }, "name": { "type": "string", "minLength": 1, "description": "Floor name." }, "height": { "type": "number", "description": "Floor’s height in meters." }, "width": { "type": "number", "description": "Floor’s width in meters." }, "anchorLat": { "type": "number", "description": "Latitude of floor’s bottom right corner." }, "anchorLng": { "type": "number", "description": "Longitude of floor’s bottom right corner." }, "rotation": { "type": "number", "description": "Rotation of floor boundary rectangle on earth map. In radians." }, "properties": { "type": "object", "properties": { "XYQBEfNXvyCH": { "type": "string", "minLength": 1 }, "aTOExKSzKweg": { "type": "string", "minLength": 1 }, "tWaUaNAquRxX": { "type": "string", "minLength": 1 } }, "required": [ "XYQBEfNXvyCH", "aTOExKSzKweg", "tWaUaNAquRxX" ] }, "building": { "type": "object", "properties": { "id": { "type": "number", "description": "Building Id." }, "name": { "type": "string", "minLength": 1, "description": "Building name." } }, "required": [ "id", "name" ] }, "level": { "type": "number", "description": "Floor’s level." }, "latLngGeojson": { "type": "object", "description": "GeoJSON format description of floor boundary vertices (using latitude and longitude coordinates).", "properties": { "type": { "type": "string", "minLength": 1 }, "geometry": { "type": "object", "required": [ "type", "coordinates" ], "properties": { "type": { "type": "string", "minLength": 1 }, "coordinates": { "type": "array", "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "1": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "2": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "3": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "4": { "type": "array", "uniqueItems": true, "items": { "type": "object" } } } } } } } } } } }, "required": [ "type", "geometry" ] }, "xyGeojson": { "type": "object", "description": "GeoJSON format description of floor boundary vertices (using meters, bottom left point should always be [0, 0]).", "properties": { "type": { "type": "string", "minLength": 1 }, "geometry": { "type": "object", "required": [ "type", "coordinates" ], "properties": { "type": { "type": "string", "minLength": 1 }, "coordinates": { "type": "array", "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "1": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "2": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "3": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "4": { "type": "array", "uniqueItems": true, "items": { "type": "object" } } } } } } } } } } }, "required": [ "type", "geometry" ] }, "imageLatLngGeojson": { "type": "object", "description": "GeoJSON format description of floor plan boundary vertices (using latitude and longitude coordinates).", "properties": { "type": { "type": "string", "minLength": 1 }, "geometry": { "type": "object", "required": [ "type", "coordinates" ], "properties": { "type": { "type": "string", "minLength": 1 }, "coordinates": { "type": "array", "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "1": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "2": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "3": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "4": { "type": "array", "uniqueItems": true, "items": { "type": "object" } } } } } } } } } } }, "required": [ "type", "geometry" ] }, "imageXyGeojson": { "type": "object", "description": "GeoJSON format description of floor plan boundary vertices (using meters relative to baseline of floor).", "properties": { "type": { "type": "string", "minLength": 1 }, "geometry": { "type": "object", "required": [ "type", "coordinates" ], "properties": { "type": { "type": "string", "minLength": 1 }, "coordinates": { "type": "array", "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object", "properties": { "0": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "1": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "2": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "3": { "type": "array", "uniqueItems": true, "items": { "type": "object" } }, "4": { "type": "array", "uniqueItems": true, "items": { "type": "object" } } } } } } } } } } }, "required": [ "type", "geometry" ] }, "gateways": { "type": "array", "uniqueItems": true, "minItems": 1, "description": "Gateways placed in room.", "items": { "type": "object", "properties": { "id": { "type": "number", "description": "Id of the gateway." }, "lat": { "type": "number", "description": "Latitude of a gateway." }, "lng": { "type": "number", "description": "Longitude of a gateway." }, "altitude": { "type": "number", "description": "Height in meters above sea level." }, "x": { "type": "number", "description": "Horizontal coordinate of a gateway (in meters relative to baseline of floor)." }, "y": { "type": "number", "description": "Vertical coordinate of a gateway (in meters relative to baseline of floor)." }, "z": { "type": "number", "description": "Height coordinate of a gateway. (in meters relative to baseline of floor)." }, "verticalOrientation": { "type": "number", "description": "Rotation in degrees on the horizontal plane. 0 = parallel to the ground facing up, 90 = on the wall, 180 = parallel to the ground facing down." }, "range": { "type": "number", "description": "Minimum RSSI. When calculating position, if strongest signal will have less RSSI than range, that result will be rejected, and beacon considered lost." }, "virtual": { "type": "boolean", "description": "Virtual gateway will be used to map lat, lng to sourceId. There should be one virtual gateway in each floor. Virtual gateway is created automatically when creating floor." }, "sourceId": { "type": "string", "minLength": 1, "description": "SourceId of the gateway." } }, "required": [ "id", "lat", "lng", "altitude", "x", "y", "z", "verticalOrientation", "range", "virtual", "sourceId" ] } } }, "required": [ "id", "name", "height", "width", "anchorLat", "anchorLng", "rotation", "level" ] } } }, "required": [ "content" ] }