Created
December 26, 2018 13:56
-
-
Save nehemiascr/6d5ac4008f3de22e14a9c2a5f67c5b0a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"swagger": "2.0", | |
"info": { | |
"version": "4.2", | |
"title": "traccar" | |
}, | |
"host": "traccar.fakturacion.com", | |
"basePath": "/api", | |
"schemes": [ | |
"http" | |
], | |
"security": [ | |
{ | |
"basicAuth": [] | |
} | |
], | |
"consumes": [ | |
"application/json" | |
], | |
"produces": [ | |
"application/json" | |
], | |
"paths": { | |
"/commands": { | |
"get": { | |
"summary": "Fetch a list of Saved Commands", | |
"description": "Without params, it returns a list of Drivers the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"$ref": "#/parameters/deviceId" | |
}, | |
{ | |
"$ref": "#/parameters/groupId" | |
}, | |
{ | |
"$ref": "#/parameters/refresh" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Command" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Saved Command", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Command" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Command" | |
} | |
} | |
} | |
} | |
}, | |
"/commands/{id}": { | |
"put": { | |
"summary": "Update a Saved Command", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Command" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Command" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Saved Command", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/commands/send": { | |
"get": { | |
"summary": "Fetch a list of Saved Commands supported by Device at the moment", | |
"description": "Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/deviceId" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Command" | |
} | |
} | |
}, | |
"400": { | |
"description": "Could happen when the user doesn't have permission for the device" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Dispatch commands to device", | |
"description": "Dispatch a new command or Saved Command if _body.id_ set", | |
"parameters": [ | |
{ | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Command" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Command sent", | |
"schema": { | |
"$ref": "#/definitions/Command" | |
} | |
}, | |
"202": { | |
"description": "Command queued", | |
"schema": { | |
"$ref": "#/definitions/Command" | |
} | |
}, | |
"400": { | |
"description": "Could happen when the user doesn't have permission or an incorrect command _type_ for the device" | |
} | |
} | |
} | |
}, | |
"/commands/types": { | |
"get": { | |
"summary": "Fetch a list of available Commands for the Device or all possible Commands if Device ommited", | |
"parameters": [ | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"type": "integer" | |
}, | |
{ | |
"name": "textChannel", | |
"in": "query", | |
"type": "boolean" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/CommandType" | |
} | |
} | |
}, | |
"400": { | |
"description": "Could happen when trying to fetch from a device the user does not have permission" | |
} | |
} | |
} | |
}, | |
"/devices": { | |
"get": { | |
"summary": "Fetch a list of Devices", | |
"description": "Without any params, returns a list of the user's devices", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"name" : "id", | |
"in" : "query", | |
"description" : "To fetch one or more devices. Multiple params can be passed like `id=31&id=42`", | |
"required" : false, | |
"type" : "integer", | |
"collectionFormat" : "multi" | |
}, | |
{ | |
"name" : "uniqueId", | |
"in" : "query", | |
"description" : "To fetch one or more devices. Multiple params can be passed like `uniqueId=333331&uniqieId=44442`", | |
"required" : false, | |
"type" : "string", | |
"collectionFormat" : "multi" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Device" | |
} | |
} | |
}, | |
"400": { | |
"description": "No permission" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Device", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Device" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Device" | |
} | |
} | |
} | |
} | |
}, | |
"/devices/{id}": { | |
"put": { | |
"summary": "Update a Device", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Device" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Device" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Device", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/devices/{id}/accumulators": { | |
"put": { | |
"summary": "Update total distance and hours of the Device", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/DeviceAccumulators" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/groups": { | |
"get": { | |
"summary": "Fetch a list of Groups", | |
"description": "Without any params, returns a list of the Groups the user belongs to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Group" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Group", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Group" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Group" | |
} | |
}, | |
"400": { | |
"description": "No permission" | |
} | |
} | |
} | |
}, | |
"/groups/{id}": { | |
"put": { | |
"summary": "Update a Group", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Group" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Group" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Group", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/permissions": { | |
"post": { | |
"summary": "Link an Object to another Object", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Permission" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Permission" | |
} | |
}, | |
"400": { | |
"description": "No permission" | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Unlink an Object from another Object", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Permission" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/positions": { | |
"get": { | |
"summary" : "Fetches a list of Positions", | |
"description" : "Without any params, it returns a list of last known positions for all the user's Devices. _from_ and _to_ fields are not required with _id_", | |
"consumes": [ | |
"application/json", | |
"text/csv", | |
"application/gpx+xml" | |
], | |
"produces": [ | |
"application/json", | |
"text/csv", | |
"application/gpx+xml" | |
], | |
"parameters": [ | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "_deviceId_ is optional, but requires the _from_ and _to_ parameters when used", | |
"required": false, | |
"type": "integer" | |
}, | |
{ | |
"name": "from", | |
"in": "query", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`", | |
"required": false, | |
"type": "string", | |
"format": "date-time" | |
}, | |
{ | |
"name": "to", | |
"in": "query", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`", | |
"required": false, | |
"type": "string", | |
"format": "date-time" | |
}, | |
{ | |
"name" : "id", | |
"in" : "query", | |
"description" : "To fetch one or more positions. Multiple params can be passed like `id=31&id=42`", | |
"required" : false, | |
"type" : "integer", | |
"collectionFormat" : "multi" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Position" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/server": { | |
"get": { | |
"summary": "Fetch Server information", | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Server" | |
} | |
} | |
} | |
}, | |
"put": { | |
"summary": "Update Server information", | |
"parameters": [ | |
{ | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Server" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Server" | |
} | |
} | |
} | |
} | |
}, | |
"/session": { | |
"get": { | |
"summary": "Fetch Session information", | |
"consumes": [ | |
"application/x-www-form-urlencoded" | |
], | |
"parameters": [ | |
{ | |
"name": "token", | |
"in": "query", | |
"required": false, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
}, | |
"404": { | |
"description": "Not Found" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a new Session", | |
"consumes": [ | |
"application/x-www-form-urlencoded" | |
], | |
"parameters": [ | |
{ | |
"name": "email", | |
"in": "formData", | |
"required": true, | |
"type": "string" | |
}, | |
{ | |
"name": "password", | |
"in": "formData", | |
"required": true, | |
"type": "string", | |
"format": "password" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Close the Session", | |
"consumes": [ | |
"application/x-www-form-urlencoded" | |
], | |
"parameters": [], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/users": { | |
"get": { | |
"summary": "Fetch a list of Users", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Can only be used by admin or manager users", | |
"required": false, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
}, | |
"400": { | |
"description": "No Permission" | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a User", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/User" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
} | |
} | |
}, | |
"/users/{id}": { | |
"put": { | |
"summary": "Update a User", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/User" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a User", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/notifications": { | |
"get": { | |
"summary": "Fetch a list of Notifications", | |
"description": "Without params, it returns a list of Notifications the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"$ref": "#/parameters/deviceId" | |
}, | |
{ | |
"$ref": "#/parameters/groupId" | |
}, | |
{ | |
"$ref": "#/parameters/refresh" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Notification" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Notification", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Notification" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Notification" | |
} | |
} | |
} | |
} | |
}, | |
"/notifications/{id}": { | |
"put": { | |
"summary": "Update a Notification", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Notification" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Notification" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Notification", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/notifications/types": { | |
"get": { | |
"summary": "Fetch a list of available Notification types", | |
"parameters": [], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/NotificationType" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/notifications/test": { | |
"post": { | |
"summary": "Send test notification to current user via Email and SMS", | |
"parameters": [], | |
"responses": { | |
"204": { | |
"description": "Successful sending" | |
}, | |
"400": { | |
"description": "Could happen if sending has failed" | |
} | |
} | |
} | |
}, | |
"/geofences": { | |
"get": { | |
"summary": "Fetch a list of Geofences", | |
"description": "Without params, it returns a list of Geofences the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"$ref": "#/parameters/deviceId" | |
}, | |
{ | |
"$ref": "#/parameters/groupId" | |
}, | |
{ | |
"$ref": "#/parameters/refresh" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Geofence" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Geofence", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Geofence" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Geofence" | |
} | |
} | |
} | |
} | |
}, | |
"/geofences/{id}": { | |
"put": { | |
"summary": "Update a Geofence", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Geofence" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Geofence" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Geofence", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/events/{id}": { | |
"get": { | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Event" | |
} | |
} | |
} | |
} | |
}, | |
"/reports/route": { | |
"get": { | |
"summary": "Fetch a list of Positions within the time period for the Devices or Groups", | |
"description": "At least one _deviceId_ or one _groupId_ must be passed", | |
"consumes": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"produces": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/deviceIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/groupIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/fromTime" | |
}, | |
{ | |
"$ref": "#/parameters/toTime" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Position" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/reports/events": { | |
"get": { | |
"summary": "Fetch a list of Events within the time period for the Devices or Groups", | |
"description": "At least one _deviceId_ or one _groupId_ must be passed", | |
"consumes": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"produces": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/deviceIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/groupIdArray" | |
}, | |
{ | |
"name": "type", | |
"in": "query", | |
"description": "% can be used to return events of all types", | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
{ | |
"$ref": "#/parameters/fromTime" | |
}, | |
{ | |
"$ref": "#/parameters/toTime" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Event" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/reports/summary": { | |
"get": { | |
"summary": "Fetch a list of ReportSummary within the time period for the Devices or Groups", | |
"description": "At least one _deviceId_ or one _groupId_ must be passed", | |
"consumes": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"produces": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/deviceIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/groupIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/fromTime" | |
}, | |
{ | |
"$ref": "#/parameters/toTime" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/ReportSummary" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/reports/trips": { | |
"get": { | |
"summary": "Fetch a list of ReportTrips within the time period for the Devices or Groups", | |
"description": "At least one _deviceId_ or one _groupId_ must be passed", | |
"consumes": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"produces": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/deviceIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/groupIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/fromTime" | |
}, | |
{ | |
"$ref": "#/parameters/toTime" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/ReportTrips" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/reports/stops": { | |
"get": { | |
"summary": "Fetch a list of ReportStops within the time period for the Devices or Groups", | |
"description": "At least one _deviceId_ or one _groupId_ must be passed", | |
"consumes": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"produces": [ | |
"application/json", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
], | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/deviceIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/groupIdArray" | |
}, | |
{ | |
"$ref": "#/parameters/fromTime" | |
}, | |
{ | |
"$ref": "#/parameters/toTime" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/ReportStops" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/statistics": { | |
"get": { | |
"summary": "Fetch server Statistics", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/fromTime" | |
}, | |
{ | |
"$ref": "#/parameters/toTime" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Statistics" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/calendars": { | |
"get": { | |
"summary": "Fetch a list of Calendars", | |
"description": "Without params, it returns a list of Calendars the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Calendar" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Calendar", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Calendar" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Calendar" | |
} | |
} | |
} | |
} | |
}, | |
"/calendars/{id}": { | |
"put": { | |
"summary": "Update a Calendar", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Calendar" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Calendar" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Calendar", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/attributes/computed": { | |
"get": { | |
"summary": "Fetch a list of Attributes", | |
"description": "Without params, it returns a list of Attributes the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"$ref": "#/parameters/deviceId" | |
}, | |
{ | |
"$ref": "#/parameters/groupId" | |
}, | |
{ | |
"$ref": "#/parameters/refresh" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Attribute" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create an Attribute", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Attribute" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Attribute" | |
} | |
} | |
} | |
} | |
}, | |
"/attributes/computed/{id}": { | |
"put": { | |
"summary": "Update an Attribute", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Attribute" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Attribute" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete an Attribute", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/drivers": { | |
"get": { | |
"summary": "Fetch a list of Drivers", | |
"description": "Without params, it returns a list of Drivers the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"$ref": "#/parameters/deviceId" | |
}, | |
{ | |
"$ref": "#/parameters/groupId" | |
}, | |
{ | |
"$ref": "#/parameters/refresh" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Driver" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Driver", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Driver" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Driver" | |
} | |
} | |
} | |
} | |
}, | |
"/drivers/{id}": { | |
"put": { | |
"summary": "Update a Driver", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Driver" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Driver" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Driver", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
}, | |
"/maintenance": { | |
"get": { | |
"summary": "Fetch a list of Maintenance", | |
"description": "Without params, it returns a list of Maintenance the user has access to", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/all" | |
}, | |
{ | |
"$ref": "#/parameters/userId" | |
}, | |
{ | |
"$ref": "#/parameters/deviceId" | |
}, | |
{ | |
"$ref": "#/parameters/groupId" | |
}, | |
{ | |
"$ref": "#/parameters/refresh" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Maintenance" | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"summary": "Create a Maintenance", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/Maintenance" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Maintenance" | |
} | |
} | |
} | |
} | |
}, | |
"/maintenance/{id}": { | |
"put": { | |
"summary": "Update a Maintenance", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
}, | |
{ | |
"$ref": "#/parameters/Maintenance" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "OK", | |
"schema": { | |
"$ref": "#/definitions/Maintenance" | |
} | |
} | |
} | |
}, | |
"delete": { | |
"summary": "Delete a Maintenance", | |
"parameters": [ | |
{ | |
"$ref": "#/parameters/entityId" | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "No Content" | |
} | |
} | |
} | |
} | |
}, | |
"definitions": { | |
"Position": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"deviceId": { | |
"type": "integer" | |
}, | |
"protocol": { | |
"type": "string" | |
}, | |
"deviceTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"fixTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"serverTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"outdated": { | |
"type": "boolean" | |
}, | |
"valid": { | |
"type": "boolean" | |
}, | |
"latitude": { | |
"type": "number" | |
}, | |
"longitude": { | |
"type": "number" | |
}, | |
"altitude": { | |
"type": "number" | |
}, | |
"speed": { | |
"type": "number", | |
"description": "in knots" | |
}, | |
"course": { | |
"type": "number" | |
}, | |
"address": { | |
"type": "string" | |
}, | |
"accuracy": { | |
"type": "number" | |
}, | |
"network": { | |
"type": "string" | |
}, | |
"attributes": {} | |
} | |
}, | |
"User": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"email": { | |
"type": "string" | |
}, | |
"readonly": { | |
"type": "boolean" | |
}, | |
"administrator": { | |
"type": "boolean" | |
}, | |
"map": { | |
"type": "string" | |
}, | |
"latitude": { | |
"type": "number" | |
}, | |
"longitude": { | |
"type": "number" | |
}, | |
"zoom": { | |
"type": "integer" | |
}, | |
"password": { | |
"type": "string" | |
}, | |
"twelveHourFormat": { | |
"type": "boolean" | |
}, | |
"coordinateFormat": { | |
"type": "string" | |
}, | |
"disabled": { | |
"type": "boolean" | |
}, | |
"expirationTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"deviceLimit": { | |
"type": "integer" | |
}, | |
"userLimit": { | |
"type": "integer" | |
}, | |
"deviceReadonly": { | |
"type": "boolean" | |
}, | |
"limitCommands": { | |
"type": "boolean" | |
}, | |
"poiLayer": { | |
"type": "string" | |
}, | |
"token": { | |
"type": "string" | |
}, | |
"attributes": {} | |
} | |
}, | |
"Server": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"registration": { | |
"type": "boolean" | |
}, | |
"readonly": { | |
"type": "boolean" | |
}, | |
"deviceReadonly": { | |
"type": "boolean" | |
}, | |
"limitCommands": { | |
"type": "boolean" | |
}, | |
"map": { | |
"type": "string" | |
}, | |
"bingKey": { | |
"type": "string" | |
}, | |
"mapUrl": { | |
"type": "string" | |
}, | |
"poiLayer": { | |
"type": "string" | |
}, | |
"latitude": { | |
"type": "number" | |
}, | |
"longitude": { | |
"type": "number" | |
}, | |
"zoom": { | |
"type": "integer" | |
}, | |
"twelveHourFormat": { | |
"type": "boolean" | |
}, | |
"version": { | |
"type": "string" | |
}, | |
"forceSettings": { | |
"type": "boolean" | |
}, | |
"coordinateFormat": { | |
"type": "string" | |
}, | |
"attributes": {} | |
} | |
}, | |
"Command": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"deviceId": { | |
"type": "integer" | |
}, | |
"description": { | |
"type": "string" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"attributes": {} | |
} | |
}, | |
"Device": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"uniqueId": { | |
"type": "string" | |
}, | |
"status": { | |
"type": "string" | |
}, | |
"disabled": { | |
"type": "boolean" | |
}, | |
"lastUpdate": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"positionId": { | |
"type": "integer" | |
}, | |
"groupId": { | |
"type": "integer" | |
}, | |
"phone": { | |
"type": "string" | |
}, | |
"model": { | |
"type": "string" | |
}, | |
"contact": { | |
"type": "string" | |
}, | |
"category": { | |
"type": "string" | |
}, | |
"geofenceIds": { | |
"type": "array", | |
"items": { | |
"type": "integer" | |
} | |
}, | |
"attributes": {} | |
} | |
}, | |
"Group": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"groupId": { | |
"type": "integer" | |
}, | |
"attributes": {} | |
} | |
}, | |
"Permission": { | |
"description": "This is a permission map that contain two object indexes. It is used to link/unlink objects. Order is important. Example: { deviceId:8, geofenceId: 16 }", | |
"properties": { | |
"userId": { | |
"description": "User Id, can be only first parameter", | |
"type": "integer" | |
}, | |
"deviceId": { | |
"description": "Device Id, can be first parameter or second only in combination with userId", | |
"type": "integer" | |
}, | |
"groupId": { | |
"description": "Group Id, can be first parameter or second only in combination with userId", | |
"type": "integer" | |
}, | |
"geofenceId": { | |
"description": "Geofence Id, can be second parameter only", | |
"type": "integer" | |
}, | |
"calendarId": { | |
"description": "Geofence Id, can be second parameter only and only in combination with userId", | |
"type": "integer" | |
}, | |
"attributeId": { | |
"description": "Computed Attribute Id, can be second parameter only", | |
"type": "integer" | |
}, | |
"driverId": { | |
"description": "Driver Id, can be second parameter only", | |
"type": "integer" | |
}, | |
"managedUserId": { | |
"description": "User Id, can be second parameter only and only in combination with userId", | |
"type": "integer" | |
} | |
} | |
}, | |
"CommandType": { | |
"properties": { | |
"type": { | |
"type": "string" | |
} | |
} | |
}, | |
"Geofence": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"description": { | |
"type": "string" | |
}, | |
"area": { | |
"type": "string" | |
}, | |
"calendarId": { | |
"type": "integer" | |
}, | |
"attributes": {} | |
} | |
}, | |
"Notification": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"always": { | |
"type": "boolean" | |
}, | |
"web": { | |
"type": "boolean" | |
}, | |
"mail": { | |
"type": "boolean" | |
}, | |
"sms": { | |
"type": "boolean" | |
}, | |
"calendarId": { | |
"type": "integer" | |
}, | |
"attributes": {} | |
} | |
}, | |
"NotificationType": { | |
"properties": { | |
"type": { | |
"type": "string" | |
} | |
} | |
}, | |
"Event": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"serverTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"deviceId": { | |
"type": "integer" | |
}, | |
"positionId": { | |
"type": "integer" | |
}, | |
"geofenceId": { | |
"type": "integer" | |
}, | |
"maintenanceId": { | |
"type": "integer" | |
}, | |
"attributes": {} | |
} | |
}, | |
"ReportSummary": { | |
"properties": { | |
"deviceId": { | |
"type": "integer" | |
}, | |
"deviceName": { | |
"type": "string" | |
}, | |
"maxSpeed": { | |
"type": "number", | |
"description": "in knots" | |
}, | |
"averageSpeed": { | |
"type": "number", | |
"description": "in knots" | |
}, | |
"distance": { | |
"type": "number", | |
"description": "in meters" | |
}, | |
"spentFuel": { | |
"type": "number", | |
"description": "in liters" | |
}, | |
"engineHours": { | |
"type": "integer" | |
} | |
} | |
}, | |
"ReportTrips": { | |
"properties": { | |
"deviceId": { | |
"type": "integer" | |
}, | |
"deviceName": { | |
"type": "string" | |
}, | |
"maxSpeed": { | |
"type": "number", | |
"description": "in knots" | |
}, | |
"averageSpeed": { | |
"type": "number", | |
"description": "in knots" | |
}, | |
"distance": { | |
"type": "number", | |
"description": "in meters" | |
}, | |
"spentFuel": { | |
"type": "number", | |
"description": "in liters" | |
}, | |
"duration": { | |
"type": "integer" | |
}, | |
"startTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"startAddress": { | |
"type": "string" | |
}, | |
"startLat": { | |
"type": "number" | |
}, | |
"startLon": { | |
"type": "number" | |
}, | |
"endTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"endAddress": { | |
"type": "string" | |
}, | |
"endLat": { | |
"type": "number" | |
}, | |
"endLon": { | |
"type": "number" | |
}, | |
"driverUniqueId": { | |
"type": "integer" | |
}, | |
"driverName": { | |
"type": "string" | |
} | |
} | |
}, | |
"ReportStops": { | |
"properties": { | |
"deviceId": { | |
"type": "integer" | |
}, | |
"deviceName": { | |
"type": "string" | |
}, | |
"duration": { | |
"type": "integer" | |
}, | |
"startTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"address": { | |
"type": "string" | |
}, | |
"lat": { | |
"type": "number" | |
}, | |
"lon": { | |
"type": "number" | |
}, | |
"endTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"spentFuel": { | |
"type": "number", | |
"description": "in liters" | |
}, | |
"engineHours": { | |
"type": "integer" | |
} | |
} | |
}, | |
"Statistics": { | |
"properties": { | |
"captureTime": { | |
"type": "string", | |
"format": "date-time", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`" | |
}, | |
"activeUsers": { | |
"type": "integer" | |
}, | |
"activeDevices": { | |
"type": "integer" | |
}, | |
"requests": { | |
"type": "integer" | |
}, | |
"messagesReceived": { | |
"type": "integer" | |
}, | |
"messagesStored": { | |
"type": "integer" | |
} | |
} | |
}, | |
"DeviceAccumulators": { | |
"properties": { | |
"deviceId": { | |
"type": "integer" | |
}, | |
"totalDistance": { | |
"type": "number", | |
"description": "in meters" | |
}, | |
"hours": { | |
"type": "number" | |
} | |
} | |
}, | |
"Calendar": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"data": { | |
"type": "string", | |
"description": "base64 encoded in iCalendar format" | |
}, | |
"atributes": {} | |
} | |
}, | |
"Attribute": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"description": { | |
"type": "string" | |
}, | |
"attribute": { | |
"type": "string" | |
}, | |
"expression": { | |
"type": "string" | |
}, | |
"type": { | |
"type": "string", | |
"description": "String|Number|Boolean" | |
} | |
} | |
}, | |
"Driver": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"uniqueId": { | |
"type": "string" | |
}, | |
"atributes": {} | |
} | |
}, | |
"Maintenance": { | |
"properties": { | |
"id": { | |
"type": "integer" | |
}, | |
"name": { | |
"type": "string" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"start": { | |
"type": "number" | |
}, | |
"period": { | |
"type": "number" | |
}, | |
"atributes": {} | |
} | |
} | |
}, | |
"parameters": { | |
"entityId": { | |
"name": "id", | |
"in": "path", | |
"required": true, | |
"type": "integer" | |
}, | |
"all": { | |
"name": "all", | |
"in": "query", | |
"description": "Can only be used by admins or managers to fetch all entities", | |
"type": "boolean" | |
}, | |
"refresh": { | |
"name": "refresh", | |
"in": "query", | |
"required": false, | |
"type": "boolean" | |
}, | |
"userId": { | |
"name": "userId", | |
"in": "query", | |
"description": "Standard users can use this only with their own _userId_", | |
"type": "integer" | |
}, | |
"deviceId": { | |
"name": "deviceId", | |
"in": "query", | |
"description": "Standard users can use this only with _deviceId_s, they have access to", | |
"type": "integer" | |
}, | |
"groupId": { | |
"name": "groupId", | |
"in": "query", | |
"description": "Standard users can use this only with _groupId_s, they have access to", | |
"type": "integer" | |
}, | |
"Device": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Device" | |
} | |
}, | |
"Permission": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Permission" | |
} | |
}, | |
"Group": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Group" | |
} | |
}, | |
"User": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
}, | |
"Geofence": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Geofence" | |
} | |
}, | |
"Calendar": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Calendar" | |
} | |
}, | |
"Attribute": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Attribute" | |
} | |
}, | |
"Driver": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Driver" | |
} | |
}, | |
"Command": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Command" | |
} | |
}, | |
"Notification": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Notification" | |
} | |
}, | |
"Maintenance": { | |
"name": "body", | |
"in": "body", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Maintenance" | |
} | |
}, | |
"deviceIdArray": { | |
"name": "deviceId", | |
"in": "query", | |
"type": "array", | |
"items": { | |
"type": "integer" | |
}, | |
"collectionFormat": "multi" | |
}, | |
"groupIdArray": { | |
"name": "groupId", | |
"in": "query", | |
"type": "array", | |
"items": { | |
"type": "integer" | |
}, | |
"collectionFormat": "multi" | |
}, | |
"fromTime": { | |
"name": "from", | |
"in": "query", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`", | |
"required": true, | |
"type": "string", | |
"format": "date-time" | |
}, | |
"toTime": { | |
"name": "to", | |
"in": "query", | |
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`", | |
"required": true, | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
"securityDefinitions": { | |
"basicAuth": { | |
"type": "basic", | |
"description": "Basic HTTP authorization with _email_ and _password_" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment