VDS Files API (1.7.0)

Download OpenAPI specification:

Elliot Morrison-Reed: Elliot.Morrison-Reed@us.bosch.com

The file paths of a VDS project, served by its web address (https://<project>.<domain>) rather than by the REST API: stored trip files and their conversions (MDF4, BLF, OBD snapshot as HTML or JSON, run results as CSV), datasource-server export artifacts, data-dictionary files and the part uploads of a new dictionary.

A request is authenticated either by the web application's session cookies or by a bearer token from the project's user pool — the same token the REST API takes. Every object key must lie inside the project's own prefix (project_id=<project> for trip files and dictionaries, exports/<project>/ for export artifacts); a key outside it answers 403.

Errors from object storage and from the converter arrive as an S3 XML envelope (<Error><Code/><Message/></Error>); the edge answers 401 and 403 with a short plain-text body and, for a session without cookies or token, redirects (302) to the sign-in page.

Keys are multi-segment paths and appear in the URL unescaped, slashes included; the {key} parameters below stand for the whole remainder of the path.

tripfiles

Stored trip files and their conversions

Download a stored trip file

Returns the object stored under key in the project's data bucket: an .autodata chunk, an MDF4 file, a parquet file, or a cloud run's results.json (runs/project_id=<project>/<run>/results.json). GET /trips/{trip}/files of the REST API lists a trip's keys.

Authorizations:
bearerAuthcookieAuth
path Parameters
key
required
string
Example: raw/optimized/project_id=a5478be7a4908454fc93/device_id=358700000000001/trip_id=8f2c…/1757200000000.autodata

Object key in the project's data bucket, slashes included.

Responses

Convert a trip file on the fly

Returns the object {dir}/{file} converted by the autodata converter. The format is the path segment before the file name; the key of the stored object is the path with that segment removed. parquet is reserved and answers 400. A chunk holding no OBD samples answers 400 with the message no OBD data for the obd and obdjson formats; a whole trip is folded by converting each of its chunks and merging the reports with the newest reading of each signal winning.

Authorizations:
bearerAuthcookieAuth
path Parameters
dir
required
string
Example: raw/optimized/project_id=a5478be7a4908454fc93/device_id=358700000000001/trip_id=8f2c…

Directory part of the stored object's key, slashes included.

format
required
string (ConversionFormat)
Enum: "mf4" "blf" "obd" "obdjson" "csv" "parquet"

Target format.

file
required
string
Example: 1757200000000.autodata

File name part of the stored object's key.

query Parameters
exclude_sources
string
Example: exclude_sources=rcuinfo,gps

Sources to leave out of an mf4 or blf conversion, comma separated; none keeps every source. Without the parameter rcuinfo (device monitoring) is left out. Ignored by the OBD and CSV formats.

tz
string
Example: tz=Europe/Berlin

IANA time zone for the timestamps of a csv conversion, UTC without the parameter. Ignored by the other formats.

Responses

Response samples

Content type
Example

exports

Artifacts written by the datasource server's export

Download an export artifact

Returns an artifact the datasource server wrote for POST /v1/export, whose response names it as artifact_url (this path). {project} must be the project of the web address.

Authorizations:
bearerAuthcookieAuth
path Parameters
project
required
string

Project id (the X-Tenant-Id value).

file
required
string

Artifact file name, <export id>.mf4.

Responses

datadictionaries

Data-dictionary files and part uploads

Download a dictionary's uploaded file

Returns the file that was uploaded for the dictionary, as stored under plugins/raw/project_id=<project>/<file>. GET /datadictionaries/{id}/raw of the REST API returns this URL with the file parameter filled in.

Authorizations:
bearerAuthcookieAuth
path Parameters
id
required
string

Dictionary id.

query Parameters
file
required
string
Example: file=powertrain.dbc

Stored file name of the dictionary.

Responses

Download a dictionary's parsed definition

Returns the parsed definition of the dictionary as stored under plugins/definitions/project_id=<project>/<type>/<id>.json. The REST API's GET /datadictionaries/{id}/can|diag|xcp return this URL.

Authorizations:
bearerAuthcookieAuth
path Parameters
id
required
string

Dictionary id.

type
required
string
Enum: "can" "diag" "xcp"

Definition type.

Responses

Response samples

Content type
application/json
{ }

Upload one part of a new dictionary file

Stores one part of the multipart upload that POST /datadictionaries of the REST API started; that response's upload_url is this path with the key filled in. Parts are numbered from 1, are at most part_size bytes, and are finished with POST /datadictionaries/{id}/upload/complete, which takes each part's ETag.

Authorizations:
bearerAuthcookieAuth
path Parameters
key
required
string
Example: raw/optimized/project_id=a5478be7a4908454fc93/device_id=358700000000001/trip_id=8f2c…/1757200000000.autodata

Object key in the project's data bucket, slashes included.

query Parameters
partNumber
required
integer >= 1

Part number, 1-indexed.

uploadId
required
string

Multipart upload id from POST /datadictionaries.

Request Body schema: application/octet-stream
required

The bytes of the part.

string <binary>

Responses