traccar/openapi.yaml
2024-11-21 17:40:09 +00:00

2353 lines
59 KiB
YAML

openapi: 3.1.0
info:
title: Traccar
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
version: '6.5'
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: []
- ApiKey: []
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
responses:
'303':
description: Redirect to OpenID Connect identity provider
content: {}
/session/openid/callback:
get:
summary: OpenID Callback
tags:
- Session
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
coordinateFormat:
type: string
disabled:
type: boolean
expirationTime:
type: string
description: in IS0 8601 format. eg. `1963-11-22T18:30:00Z`
format: date-time
nullable: true
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
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
scheme: basic
ApiKey:
type: http
scheme: bearer