traccar/swagger.json
2024-08-09 09:21:31 -07:00

3582 lines
87 KiB
JSON

{
"openapi": "3.0.1",
"info": {
"title": "Traccar",
"version": "6.4",
"description": "Traccar GPS tracking server API documentation. To use the API you need to have a server instance. For testing purposes you can use one of free [demo servers](https://www.traccar.org/demo-server/). For production use you can install your own server or get a [subscription service](https://www.traccar.org/product/tracking-server/).",
"contact": {
"name": "Traccar Support",
"url": "https://www.traccar.org/",
"email": "support@traccar.org"
},
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"servers": [
{
"url": "https://demo.traccar.org/api",
"description": "Demo Server 1"
},
{
"url": "https://demo2.traccar.org/api",
"description": "Demo Server 2"
},
{
"url": "https://demo3.traccar.org/api",
"description": "Demo Server 3"
},
{
"url": "https://demo4.traccar.org/api",
"description": "Demo Server 4"
},
{
"url": "https://server.traccar.org/api",
"description": "Subscription Server"
},
{
"url": "http://{host}:{port}/api",
"description": "Other Server",
"variables": {
"host": {
"default": "localhost"
},
"port": {
"enum": [
"8082",
"80"
],
"default": "8082"
}
}
}
],
"security": [
{
"basicAuth": []
}
],
"tags": [
{
"name": "Server",
"description": "Server information"
},
{
"name": "Session",
"description": "User session management"
},
{
"name": "Devices",
"description": "Device management"
},
{
"name": "Groups",
"description": "Group management"
},
{
"name": "Users",
"description": "User management"
},
{
"name": "Permissions",
"description": "User permissions and other object linking"
},
{
"name": "Positions",
"description": "Retrieving raw location information"
},
{
"name": "Events",
"description": "Retrieving event information"
},
{
"name": "Reports",
"description": "Reports generation"
},
{
"name": "Notifications",
"description": "User notifications management"
},
{
"name": "Geofences",
"description": "Geofence management"
},
{
"name": "Commands",
"description": "Sending commands to devices and stored command management"
},
{
"name": "Attributes",
"description": "Computed attributes management"
},
{
"name": "Drivers",
"description": "Drivers management"
},
{
"name": "Maintenance",
"description": "Maintenance management"
},
{
"name": "Calendars",
"description": "Calendar management"
},
{
"name": "Statistics",
"description": "Retrieving server statistics"
}
],
"paths": {
"/commands": {
"get": {
"summary": "Fetch a list of Saved Commands",
"tags": [
"Commands"
],
"description": "Without params, it returns a list of Saved Commands the user has access to",
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Command"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Saved Command",
"tags": [
"Commands"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/commands/{id}": {
"put": {
"summary": "Update a Saved Command",
"tags": [
"Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Saved Command",
"tags": [
"Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"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",
"tags": [
"Commands"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Command"
}
}
}
}
},
"400": {
"description": "Could happen when the user doesn't have permission for the device",
"content": {}
}
}
},
"post": {
"summary": "Dispatch commands to device",
"description": "Dispatch a new command or Saved Command if _body.id_ set",
"tags": [
"Commands"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Command sent",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
}
},
"202": {
"description": "Command queued",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
}
},
"400": {
"description": "Could happen when the user doesn't have permission or an incorrect command _type_ for the device",
"content": {}
}
},
"x-codegen-request-body-name": "body"
}
},
"/commands/types": {
"get": {
"summary": "Fetch a list of available Commands for the Device or all possible Commands if Device ommited",
"tags": [
"Commands"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"description": "Internal device identifier. Only works if device has already reported some locations",
"schema": {
"type": "integer"
}
},
{
"name": "protocol",
"in": "query",
"description": "Protocol name. Can be used instead of device id",
"schema": {
"type": "string"
}
},
{
"name": "textChannel",
"in": "query",
"description": "When `true` return SMS commands. If not specified or `false` return data commands",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CommandType"
}
}
}
}
},
"400": {
"description": "Could happen when trying to fetch from a device the user does not have permission",
"content": {}
}
}
}
},
"/devices": {
"get": {
"summary": "Fetch a list of Devices",
"description": "Without any params, returns a list of the user's devices",
"tags": [
"Devices"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "id",
"in": "query",
"description": "To fetch one or more devices. Multiple params can be passed like `id=31&id=42`",
"schema": {
"type": "integer"
}
},
{
"name": "uniqueId",
"in": "query",
"description": "To fetch one or more devices. Multiple params can be passed like `uniqueId=333331&uniqieId=44442`",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Device"
}
}
}
}
},
"400": {
"description": "No permission",
"content": {}
}
}
},
"post": {
"summary": "Create a Device",
"tags": [
"Devices"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Device"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Device"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/devices/{id}": {
"put": {
"summary": "Update a Device",
"tags": [
"Devices"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Device"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Device"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Device",
"tags": [
"Devices"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/devices/{id}/accumulators": {
"put": {
"summary": "Update total distance and hours of the Device",
"tags": [
"Devices"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceAccumulators"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content",
"content": {}
}
},
"x-codegen-request-body-name": "body"
}
},
"/groups": {
"get": {
"summary": "Fetch a list of Groups",
"description": "Without any params, returns a list of the Groups the user belongs to",
"tags": [
"Groups"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Group"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Group",
"tags": [
"Groups"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
}
},
"400": {
"description": "No permission",
"content": {}
}
},
"x-codegen-request-body-name": "body"
}
},
"/groups/{id}": {
"put": {
"summary": "Update a Group",
"tags": [
"Groups"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Group",
"tags": [
"Groups"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/permissions": {
"post": {
"summary": "Link an Object to another Object",
"tags": [
"Permissions"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Permission"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content",
"content": {}
},
"400": {
"description": "No permission",
"content": {}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Unlink an Object from another Object",
"tags": [
"Permissions"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Permission"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content",
"content": {}
}
},
"x-codegen-request-body-name": "body"
}
},
"/positions": {
"get": {
"summary": "Fetches a list of Positions",
"description": "We strongly recommend using [Traccar WebSocket API](https://www.traccar.org/traccar-api/) instead of periodically polling positions endpoint. 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_.",
"tags": [
"Positions"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"description": "_deviceId_ is optional, but requires the _from_ and _to_ parameters when used",
"schema": {
"type": "integer"
}
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"schema": {
"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`",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Position"
}
}
},
"text/csv": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Position"
}
}
},
"application/gpx+xml": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Position"
}
}
}
}
}
}
},
"delete": {
"summary": "Deletes all the Positions of a device in the time span specified",
"description": "",
"tags": [
"Positions"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"description": "",
"schema": {
"type": "integer"
},
"required": true
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"schema": {
"type": "string",
"format": "date-time"
},
"required": true
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"schema": {
"type": "string",
"format": "date-time"
},
"required": true
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
},
"400": {
"description": "Bad Request",
"content": {}
}
}
}
},
"/server": {
"get": {
"summary": "Fetch Server information",
"tags": [
"Server"
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server"
}
}
}
}
}
},
"put": {
"summary": "Update Server information",
"tags": [
"Server"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Server"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/session": {
"get": {
"summary": "Fetch Session information",
"tags": [
"Session"
],
"parameters": [
{
"name": "token",
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
},
"404": {
"description": "Not Found",
"content": {}
}
}
},
"post": {
"summary": "Create a new Session",
"tags": [
"Session"
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"required": [
"email",
"password"
],
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string",
"format": "password"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {}
}
}
},
"delete": {
"summary": "Close the Session",
"tags": [
"Session"
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/session/openid/auth": {
"get": {
"summary": "Fetch Session information",
"tags": [
"Session"
],
"parameters": [
{
}
],
"responses": {
"303": {
"description": "Redirect to OpenID Connect identity provider",
"content": { }
}
}
}
},
"/session/openid/callback": {
"get": {
"summary": "OpenID Callback",
"tags": [
"Session"
],
"parameters": [
{
}
],
"responses": {
"303": {
"description": "Successful authentication, redirect to homepage",
"content": { }
}
}
}
},
"/users": {
"get": {
"summary": "Fetch a list of Users",
"tags": [
"Users"
],
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Can only be used by admin or manager users",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"400": {
"description": "No Permission",
"content": {}
}
}
},
"post": {
"summary": "Create a User",
"tags": [
"Users"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/users/{id}": {
"put": {
"summary": "Update a User",
"tags": [
"Users"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a User",
"tags": [
"Users"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/notifications": {
"get": {
"summary": "Fetch a list of Notifications",
"description": "Without params, it returns a list of Notifications the user has access to",
"tags": [
"Notifications"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Notification"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Notification",
"tags": [
"Notifications"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Notification"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Notification"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/notifications/{id}": {
"put": {
"summary": "Update a Notification",
"tags": [
"Notifications"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Notification"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Notification"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Notification",
"tags": [
"Notifications"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/notifications/types": {
"get": {
"summary": "Fetch a list of available Notification types",
"tags": [
"Notifications"
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationType"
}
}
}
}
}
}
}
},
"/notifications/test": {
"post": {
"summary": "Send test notification to current user via Email and SMS",
"tags": [
"Notifications"
],
"responses": {
"204": {
"description": "Successful sending",
"content": {}
},
"400": {
"description": "Could happen if sending has failed",
"content": {}
}
}
}
},
"/geofences": {
"get": {
"summary": "Fetch a list of Geofences",
"description": "Without params, it returns a list of Geofences the user has access to",
"tags": [
"Geofences"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Geofence"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Geofence",
"tags": [
"Geofences"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Geofence"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Geofence"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/geofences/{id}": {
"put": {
"summary": "Update a Geofence",
"tags": [
"Geofences"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Geofence"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Geofence"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Geofence",
"tags": [
"Geofences"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/events/{id}": {
"get": {
"tags": [
"Events"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/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",
"tags": [
"Reports"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "groupId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Position"
}
}
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/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",
"tags": [
"Reports"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "groupId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "type",
"in": "query",
"description": "% can be used to return events of all types",
"style": "form",
"explode": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Event"
}
}
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/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",
"tags": [
"Reports"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "groupId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportSummary"
}
}
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/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",
"tags": [
"Reports"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "groupId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportTrips"
}
}
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/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",
"tags": [
"Reports"
],
"parameters": [
{
"name": "deviceId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "groupId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportStops"
}
}
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportStops"
}
}
}
}
}
}
}
},
"/statistics": {
"get": {
"summary": "Fetch server Statistics",
"tags": [
"Statistics"
],
"parameters": [
{
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Statistics"
}
}
}
}
}
}
}
},
"/calendars": {
"get": {
"summary": "Fetch a list of Calendars",
"description": "Without params, it returns a list of Calendars the user has access to",
"tags": [
"Calendars"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Calendar"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Calendar",
"tags": [
"Calendars"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Calendar"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Calendar"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/calendars/{id}": {
"put": {
"summary": "Update a Calendar",
"tags": [
"Calendars"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Calendar"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Calendar"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Calendar",
"tags": [
"Calendars"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/attributes/computed": {
"get": {
"summary": "Fetch a list of Attributes",
"description": "Without params, it returns a list of Attributes the user has access to",
"tags": [
"Attributes"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Attribute"
}
}
}
}
}
}
},
"post": {
"summary": "Create an Attribute",
"tags": [
"Attributes"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Attribute"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Attribute"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/attributes/computed/{id}": {
"put": {
"summary": "Update an Attribute",
"tags": [
"Attributes"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Attribute"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Attribute"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete an Attribute",
"tags": [
"Attributes"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/drivers": {
"get": {
"summary": "Fetch a list of Drivers",
"description": "Without params, it returns a list of Drivers the user has access to",
"tags": [
"Drivers"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Driver"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Driver",
"tags": [
"Drivers"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Driver"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Driver"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/drivers/{id}": {
"put": {
"summary": "Update a Driver",
"tags": [
"Drivers"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Driver"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Driver"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Driver",
"tags": [
"Drivers"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
},
"/maintenance": {
"get": {
"summary": "Fetch a list of Maintenance",
"description": "Without params, it returns a list of Maintenance the user has access to",
"tags": [
"Maintenance"
],
"parameters": [
{
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
{
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
{
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Maintenance"
}
}
}
}
}
}
},
"post": {
"summary": "Create a Maintenance",
"tags": [
"Maintenance"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Maintenance"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Maintenance"
}
}
}
}
},
"x-codegen-request-body-name": "body"
}
},
"/maintenance/{id}": {
"put": {
"summary": "Update a Maintenance",
"tags": [
"Maintenance"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Maintenance"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Maintenance"
}
}
}
}
},
"x-codegen-request-body-name": "body"
},
"delete": {
"summary": "Delete a Maintenance",
"tags": [
"Maintenance"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "No Content",
"content": {}
}
}
}
}
},
"components": {
"schemas": {
"Position": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"deviceId": {
"type": "integer"
},
"protocol": {
"type": "string"
},
"deviceTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"fixTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"serverTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"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": "object",
"properties": {}
},
"geofenceIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"User": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"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",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"deviceLimit": {
"type": "integer"
},
"userLimit": {
"type": "integer"
},
"deviceReadonly": {
"type": "boolean"
},
"limitCommands": {
"type": "boolean"
},
"fixedEmail": {
"type": "boolean"
},
"poiLayer": {
"type": "string"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Server": {
"type": "object",
"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"
},
"openIdEnabled": {
"type": "boolean"
},
"openIdForce": {
"type": "boolean"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Command": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"deviceId": {
"type": "integer"
},
"description": {
"type": "string"
},
"type": {
"type": "string"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Device": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"uniqueId": {
"type": "string"
},
"status": {
"type": "string"
},
"disabled": {
"type": "boolean"
},
"lastUpdate": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"positionId": {
"type": "integer"
},
"groupId": {
"type": "integer"
},
"phone": {
"type": "string"
},
"model": {
"type": "string"
},
"contact": {
"type": "string"
},
"category": {
"type": "string"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Group": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"groupId": {
"type": "integer"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Permission": {
"type": "object",
"properties": {
"userId": {
"type": "integer",
"description": "User id, can be only first parameter"
},
"deviceId": {
"type": "integer",
"description": "Device id, can be first parameter or second only in combination with userId"
},
"groupId": {
"type": "integer",
"description": "Group id, can be first parameter or second only in combination with userId"
},
"geofenceId": {
"type": "integer",
"description": "Geofence id, can be second parameter only"
},
"notificationId": {
"type": "integer",
"description": "Notification id, can be second parameter only"
},
"calendarId": {
"type": "integer",
"description": "Calendar id, can be second parameter only and only in combination with userId"
},
"attributeId": {
"type": "integer",
"description": "Computed attribute id, can be second parameter only"
},
"driverId": {
"type": "integer",
"description": "Driver id, can be second parameter only"
},
"managedUserId": {
"type": "integer",
"description": "User id, can be second parameter only and only in combination with userId"
},
"commandId": {
"type": "integer",
"description": "Saved command id, can be second parameter only"
}
},
"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 }"
},
"CommandType": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
},
"Geofence": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"area": {
"type": "string"
},
"calendarId": {
"type": "integer"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Notification": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"type": {
"type": "string"
},
"always": {
"type": "boolean"
},
"web": {
"type": "boolean"
},
"mail": {
"type": "boolean"
},
"sms": {
"type": "boolean"
},
"calendarId": {
"type": "integer"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"NotificationType": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
},
"Event": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"type": {
"type": "string"
},
"eventTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"deviceId": {
"type": "integer"
},
"positionId": {
"type": "integer"
},
"geofenceId": {
"type": "integer"
},
"maintenanceId": {
"type": "integer"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"ReportSummary": {
"type": "object",
"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": {
"type": "object",
"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",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"startAddress": {
"type": "string"
},
"startLat": {
"type": "number"
},
"startLon": {
"type": "number"
},
"endTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"endAddress": {
"type": "string"
},
"endLat": {
"type": "number"
},
"endLon": {
"type": "number"
},
"driverUniqueId": {
"type": "integer"
},
"driverName": {
"type": "string"
}
}
},
"ReportStops": {
"type": "object",
"properties": {
"deviceId": {
"type": "integer"
},
"deviceName": {
"type": "string"
},
"duration": {
"type": "integer"
},
"startTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"address": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"endTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"spentFuel": {
"type": "number",
"description": "in liters"
},
"engineHours": {
"type": "integer"
}
}
},
"Statistics": {
"type": "object",
"properties": {
"captureTime": {
"type": "string",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"format": "date-time"
},
"activeUsers": {
"type": "integer"
},
"activeDevices": {
"type": "integer"
},
"requests": {
"type": "integer"
},
"messagesReceived": {
"type": "integer"
},
"messagesStored": {
"type": "integer"
}
}
},
"DeviceAccumulators": {
"type": "object",
"properties": {
"deviceId": {
"type": "integer"
},
"totalDistance": {
"type": "number",
"description": "in meters"
},
"hours": {
"type": "number"
}
}
},
"Calendar": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"data": {
"type": "string",
"description": "base64 encoded in iCalendar format"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Attribute": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"description": {
"type": "string"
},
"attribute": {
"type": "string"
},
"expression": {
"type": "string"
},
"type": {
"type": "string",
"description": "String|Number|Boolean"
}
}
},
"Driver": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"uniqueId": {
"type": "string"
},
"attributes": {
"type": "object",
"properties": {}
}
}
},
"Maintenance": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"start": {
"type": "number"
},
"period": {
"type": "number"
},
"attributes": {
"type": "object",
"properties": {}
}
}
}
},
"parameters": {
"entityId": {
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
},
"all": {
"name": "all",
"in": "query",
"description": "Can only be used by admins or managers to fetch all entities",
"schema": {
"type": "boolean"
}
},
"refresh": {
"name": "refresh",
"in": "query",
"schema": {
"type": "boolean"
}
},
"userId": {
"name": "userId",
"in": "query",
"description": "Standard users can use this only with their own _userId_",
"schema": {
"type": "integer"
}
},
"deviceId": {
"name": "deviceId",
"in": "query",
"description": "Standard users can use this only with _deviceId_s, they have access to",
"schema": {
"type": "integer"
}
},
"groupId": {
"name": "groupId",
"in": "query",
"description": "Standard users can use this only with _groupId_s, they have access to",
"schema": {
"type": "integer"
}
},
"deviceIdArray": {
"name": "deviceId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"groupIdArray": {
"name": "groupId",
"in": "query",
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"fromTime": {
"name": "from",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
"toTime": {
"name": "to",
"in": "query",
"description": "in IS0 8601 format. eg. `1963-11-22T18:30:00Z`",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
},
"requestBodies": {
"Device": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Device"
}
}
},
"required": true
},
"Permission": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Permission"
}
}
},
"required": true
},
"Group": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
},
"required": true
},
"User": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
},
"required": true
},
"Geofence": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Geofence"
}
}
},
"required": true
},
"Calendar": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Calendar"
}
}
},
"required": true
},
"Attribute": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Attribute"
}
}
},
"required": true
},
"Driver": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Driver"
}
}
},
"required": true
},
"Command": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Command"
}
}
},
"required": true
},
"Notification": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Notification"
}
}
},
"required": true
},
"Maintenance": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Maintenance"
}
}
},
"required": true
}
},
"securitySchemes": {
"basicAuth": {
"type": "http",
"description": "Basic HTTP authorization with _email_ and _password_",
"scheme": "basic"
}
}
}
}