mirror of
https://github.com/traccar/traccar.git
synced 2025-01-08 11:47:49 +08:00
3582 lines
87 KiB
JSON
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"
|
|
}
|
|
}
|
|
}
|
|
}
|