> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ctechnology.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get vehicle status

> Get a vehicle's current status, meaning its most up-to-date information such as location, battery state, motor state, etc.



## OpenAPI

````yaml api-reference/openapi.yml get /vehicle/{vehicle_id}/status
openapi: 3.0.3
info:
  version: v2.2.0
  title: c.technology vehicle REST API v2.2.0
  description: >
    ## Introduction


    The c.technology vehicle REST API provides the ability to programmatically
    manage 

    and interact with the full range of c.technology products and services.

    This documentation is auto-generated from our
    [OpenAPI](https://www.openapis.org)

    specification, which you can download 

    [by clicking here](https://docs.ctechnology.io/ctechnology-openapi.yml).

    You can use this specification for example to automatically generate
    libraries

    in your favorite programming language.


    In case you are using a JS / TS-compatible system, you can use our official
    TypeScript

    c.technology app builder SDK that essentially provides a reactive Redux
    store out

    of the box that features automatic loading from the c.technology backend as
    well

    as real-time updates on changes.


    Concerning the latter, note that many endpoints are also available via the
    c.technology 

    real-time (RT) API that can be found under <a
    href="https://docs.ctechnology.io/rt">docs.ctechnology.io/rt</a>.


    ## Examples & inspirations


    You can find many examples under <a
    href="https://docs.ctechnology.io/code-examples">

    docs.ctechnology.io/code-examples</a> or on the 

    [c.technology GitHub organization](https://github.com/c-technology).


    ## Versioning


    The c.technology API is versioned, where the version identifier is part of
    the URL: 

    `https://api.ctechnology.io/v2.2/...`. To make api requests, you do not have
    to specify the 

    patch version (i.e., `v2.2` suffices, `v2.2.0` is not required), as the API
    is backwards-compatible

    between patch versions. Currently, the most up-do-date version is `v2.2.0`. 


    ## Access and authentication


    Most of our endpoints either require using a personal access token or a
    programmatic / organizational 

    access token (that can be created from your admin panel and whose
    permissions can

    be managed from there). You can request a personal access token via the
    login endpoint.


    The access tokens must be sent as part of the HTTP `Authorization` header in
    the

    following form: `Authorization: Token {your_token}`, where you should
    replace

    `your_token` with the token you received after logging in or after creating
    a 

    programmatic access.


    Currently, we do not support OpenID, OAuth or similar login / access
    schemes, 

    nor two-factor authentication. 


    ## Requests


    All requests must be made over HTTPS, if you use HTTP you will automatically
    be

    redirected to the respective HTTPS endpoint. We follow the general
    convention

    of HTTP RESTful endpoints:


    | Method        |
    Usage                                                                                                   
    |

    | -------------
    |:---------------------------------------------------------------------------------------------------------|

    | GET           | Retrieve data about (collections of) resources.
    Idempotent.                                              |

    | POST          | Create new resources (on collection endpoints). Perform
    operations/actions (on ops endpoints).           |

    | PUT           | Modify existing
    resources.                                                                              
    |

    | DELETE        | Delete existing resources. Depending on the endpoint, this
    might also simply set a deleted flag to true. |


    In general, there are several types of endpoints (we do not strictly enforce
    this, 

    but it can serve you as a guideline in determining what an endpoint will
    do):


    - Endpoints ending in an ID of a resource return only this resource.

    - Endpoints ending in a slash (irrespective if they contain an ID of a
    resource
      somewhere in the path) return a collection of resources. Often, leaving 
      away the resource ID at the end of a path will instead return all the
      resources of this type that the user has access to (potentially filtered
      and/or paginated, see below).
    - GET endpoints should never lead to changes on the cloud system / database,
    i.e.,
      they are idempotent and can be called as many times as needed.
    - If a path contains `/ops/`, it is an operation, i.e., calling this
    endpoint 
      (usually with POST as it will lead to a change) will not result in a meaningful 
      response, but instead execute some operation in the c.technology cloud system.

    By default, all communication is using `application/json` as a content type.


    ## Responses


    The responses given by the c.technology cloud system follow standard HTTP
    REST

    conventions.

    In particular, we return the following status codes:


    | Status                    |
    Description                                                                                
    |

    | -------------------------
    |:--------------------------------------------------------------------------------------------|

    | 200 OK                    | Request successful, response contains
    requested data.                                       |

    | 202 Accepted              | Request successful, but processing is not
    completed yet.                                    |

    | 204 No content            | Request successful, but there is nothing to
    return (e.g., often for `/ops`).                |

    | 400 Bad request           | The request is invalid (bad formatting,
    missing parameters, wrong content type, etc.).      |

    | 401 Unauthorized          | You need to be authenticated to access this
    resource.                                       |

    | 403 Forbidden             | The user is not authorized to access this
    resource.                                         |

    | 404 Not found             | The resource was not
    found.                                                                 |

    | 429 Too many requests     | You hit a rate
    limit.                                                                      
    |

    | 500 Internal server error | You broke our system. Not nice. Please
    [contact us](https://ctechnology.io/contact).        |


    All responses (that return something at all) are wrapped into the following
    structure.

    It is a deliberate choice to not use header fields for the metadata sent
    along, as using

    some fields on a JSON object is (in our experience) more straightforward to
    use, allows seamless reuse of 

    data structures for RT (e.g., WebSocket) communication and easy extension
    and configuration

    for various types of returned data (paginated lists, single objects, errors,
    etc.):


    ```json

    {
      "status": 12345,
      "type": "SUCCESS",
      "api_version": "v2.2",
      "data": [ ... ],
      ...
    }

    ```


    Other notes:


    - Datetime fields are always of the form `YYYY-MM-DDThh:mm:ss.sssZ`, meaning
    that *all*
      datetimes returned and accepted *must* be in UTC.
    - An exception to this rule are settings (e.g., for vehicle services) where
    a time
      frame is specified, for example every Tuesday from 14:00 to 16:00. In this case, 
      the weekday is specified as `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, 
      `saturday` or `sunday`, and the time simply as `14:00` resp. `16:00`. It is generally 
      assumed that this is local time, i.e., using the time zone at which a vehicle under 
      consideration is located (e.g., a user's timezone).
    - Within the specification, IDs are specified as `string`, yet most IDs
    you'll encounter
      are actually numbers. This is simply to allow future changes towards string-based
      IDs (such as UUIDs). As such, you should not rely on any ID being numeric.

    ## Errors


    Responses indicating errors (all non-`20X` responses) always are of the
    following form:


    ```json

    {
      "id": 98765,
      "status": 12345,
      "type": "NO_PERMISSION_USER_VIEW_MAP",
      "api_version": "v2.2",
      "severity": "LOW",
      "message": "No permission to the given object.",
      "message_i18n": "Keine Zugriffsrechte auf das angeforderte Objekt."
      "data": null,
    }

    ```


    Here, `id` describes an internal error ID, the `type` is a textual
    representation

    of the ID (that might be more generic), the `severity` can be used to
    determine

    the course of action, and the `message` is a human-readable representation
    of the

    error (if available, it will be translated to the primary language of the
    requesting 

    in the `message_i18n` field).


    ## Pagination


    As mentioned above, resource lists are *always* paginated as described
    below, where 

    `num_results` indicates the total number of resources available, `offset`
    the 

    offset from starting at the beginning of the collection, and `limit` the
    number

    of resources returned. You can request different offsets and limits using
    the

    `offset=` and `limit=` query parameters on any of these endpoints.


    The `next` and `previous` fields are optional, but might provide quick ways
    to 

    retrieve more data from the c.technology system.


    ```json

    {
      "status": 12345,
      "type": "SUCCESS",
      "api_version": "v2.2",
      "data": [ ... ],
      "num_results": 1500,
      "offset": 300,
      "limit": 100,
      "next": "https://ctechnology.io/api/v1.1/...?limit=50&after=XYZ",
      "previous": "https://ctechnology.io/api/v1.1/...?limit=50&before=XYZ"
    }

    ```


    ## Filtering, sorting and structuring


    Several endpoints can be filtered, or subsets of data can be selected. If
    not

    indicated otherwise, you can filter by using the query parameter `filter=`,

    followed by an HTML-encoded filter string, select subsets of data by
    specifying

    `fields=`, followed by a comma-separated list of fields, and sort by using 

    `orderby=` followed by a single field. By default, fields are sorted by

    `timestamp`, if available.


    ## Rate limiting


    You can make up to 80 requests per user per minute (limit to be increased

    in the future and on demand), after which you will start receiving 

    `429 Too many requests` responses.


    Note that for most purposes, you will want to use the c.technology real-time

    (RT) API or our webhooks which are not limited in terms rates and can
    provide 

    most information in a push-based manner.


    ## More information and resources


    You can find more information on [ctechnology.io](https://ctechnology.io) or
    on our 

    [company GitHub organization](https://github.com/c-technology).

    Do not hesitate to contact us in case you have any questions or things
    remain unclear.
servers:
  - url: https://ctechnology.io/api/v2.2/
    description: Primary server with auto-balancing.
security: []
tags:
  - name: Authentication
    description: |
      Everything concerned with the authentication of users, organizations,
      and apps.
  - name: User
    description: |
      Everything concerned with user and organization accounts.
  - name: Vehicle
    description: |
      Everything concerned with base vehicle properties.
  - name: Trip
    description: |
      Everything concerned with trips and vehicle movements.
  - name: Notification
    description: |
      Everything concerned with notifications and alerts.
  - name: Geo
    description: |
      Everything concerned with geographic properties and functionalities.
  - name: Insight
    description: |
      Everything concerned with advanced analytics and insights gained
      from vehicle data.
  - name: Note
    description: |
      Everything concerned with notetaking functionalities, such as the
      calendar, notebook, document upload, etc.
  - name: Maintenance
    description: |
      Everything concerned the predictive / preventive maintenance of vehicles.
  - name: Vehicle Communication
    description: |
      Everything concerned with the communication with vehicles.
  - name: Chore
    description: |
      Everything concerned with basic tasks such as image or document
      uploading, system administration, etc.
  - name: Security
    description: |
      Everything concerned with the authorizations, permissions, access
      roles, etc.
  - name: Payment
    description: |
      Everything concerned with the services, subscriptions, payments, etc.
  - name: Developer
    description: >
      Everything concerned with the developer API, such as the SMTP settings,
      etc.
  - name: OEM Custom
    description: |
      Everything concerned with the OEM customizations, such as the
      custom vehicle uploads etc.
paths:
  /vehicle/{vehicle_id}/status:
    get:
      tags:
        - Vehicle
      summary: Get vehicle status
      description: >-
        Get a vehicle's current status, meaning its most up-to-date information
        such as location, battery state, motor state, etc.
      parameters:
        - name: vehicle_id
          in: path
          schema:
            type: string
          required: true
          description: ID of vehicle to retrieve status for.
      responses:
        '200':
          description: Successful retrieval of this vehicle's current status.
          content:
            application/json:
              schema:
                type: object
                title: VehicleStatusSingle
                required:
                  - header
                  - data
                properties:
                  header:
                    $ref: '#/components/schemas/APIHeaderSingle'
                  data:
                    $ref: '#/components/schemas/VehicleStatus'
        '401':
          $ref: '#/components/responses/APIResponseUnauthorized'
        '403':
          $ref: '#/components/responses/APIResponseForbidden'
        '500':
          $ref: '#/components/responses/APIResponseInternalServerError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    APIHeaderSingle:
      type: object
      title: API Header Single
      description: |
        Default header sent along with single-resource responses.
      properties:
        api_version:
          type: string
          description: >-
            The API version that this response adheres to. Usually the same as
            in the request URL.
          readOnly: true
        status:
          type: string
          description: A status code identifying this response. Usually "SUCCESS".
          readOnly: true
        message:
          type: string
          description: A descriptive English message about this response. Usually empty.
          readOnly: true
        permission_via:
          type: array
          description: A descriptive English message about this response. Usually empty.
          items:
            type: object
            required:
              - permission
              - via
            properties:
              permission:
                type: string
                description: The permission that granted access to this API endpoint.
              via:
                type: string
                description: >
                  Either `me` if a user permission granted access, or
                  `organization` if this is a 

                  transitive permission.
                enum:
                  - me
                  - organization
              organization_id:
                type: string
                description: >-
                  The organization that gave access to this user for the given
                  resource.
          readOnly: true
    VehicleStatus:
      type: object
      title: Vehicle Status
      description: |
        A vehicle's status at a given point in time. The status is a snapshot
        of whatever was happening at this exact point in time.
      required:
        - vehicle_id
        - timestamp
        - status
        - longitude
        - latitude
        - angle
        - speed
        - total_odometer
        - pdop_value
        - battery_main_pct
        - battery_main_voltage
        - battery_main_trend
        - battery_main_trend_slope
      properties:
        vehicle_id:
          type: string
          description: The unique identifier of the vehicle this status refers to.
          readOnly: true
        timestamp:
          type: string
          format: date-time
          description: The exact date/time at which this status update was computed.
          readOnly: true
        last_update:
          type: string
          format: date-time
          description: >-
            The date/time at which the last communication with a vehicle
            happened.
          readOnly: true
        status:
          type: string
          description: >
            A description of the vehicle's status. `SETUP` describes the state
            where the IoT device 

            configuration was not completed yet, `SETUP_HOME_COMP` is similar,
            when the device 

            configuration is complete but no initial home location has been
            computed, `PARK` when

            the vehicle is parked at any location, `PARK_HOME` if the location
            is its home, `FLOAT`

            is unused for now, `CRUISE` when the vehicle is moving.
          readOnly: true
          enum:
            - SETUP
            - SETUP_HOME_COMP
            - PARK
            - PARK_HOME
            - FLOAT
            - CRUISE
        longitude:
          type: number
          description: The current longitude of the vehicle, in WGS84.
          readOnly: true
        latitude:
          type: number
          description: The current latitude of the vehicle, in WGS84.
          readOnly: true
        altitude:
          type: number
          description: The current altitude of the vehicle, in meters above sea level.
          readOnly: true
        speed:
          type: number
          description: The current speed of the vehicle, im km/h.
          readOnly: true
        angle:
          type: number
          description: >-
            The current angle of the vehicle, in degrees deviation from true
            North.
          readOnly: true
        total_odometer:
          type: number
          description: >
            The total distance driven by this vehicle. By default, this is from
            the time the IoT device was 

            installed, but if odometer readings (e.g., from a CAN bus) are
            available, they are preferred.
          readOnly: true
        last_valid_location_update:
          type: string
          format: date-time
          description: >
            The date/time of the last valid location update. As the GPS sensors
            might be turned

            off temporarily, not every update from the IoT device will contain a
            valid GPS reading.
          readOnly: true
        pdop_value:
          type: number
          description: The PDOP value of the last GPS reading.
          readOnly: true
        battery_main_pct:
          type: number
          description: Main battery level in percent.
          readOnly: true
        battery_main_voltage:
          type: number
          description: Raw voltage reading of the main battery.
          readOnly: true
        battery_main_trend:
          type: string
          description: A trend description of the main battery.
          readOnly: true
          enum:
            - CHARGE
            - CONST
            - DISCHARGE
        battery_main_trend_slope:
          type: number
          description: The charge/discharge slope of the battery readings, in mV/h.
          readOnly: true
        battery_ext_1_pct:
          type: number
          description: First external battery level in percent.
          readOnly: true
        battery_ext_1_voltage:
          type: number
          description: Raw voltage reading of the first external battery.
          readOnly: true
        battery_ext_1_trend:
          type: string
          description: A trend description of the first external battery.
          readOnly: true
          enum:
            - CHARGE
            - CONST
            - DISCHARGE
        battery_ext_1_trend_slope:
          type: number
          description: >-
            The charge/discharge slope of the first external battery readings,
            in mV/h.
          readOnly: true
        battery_ext_2_pct:
          type: number
          description: First external battery level in percent.
          readOnly: true
        battery_ext_2_voltage:
          type: number
          description: Raw voltage reading of the first external battery.
          readOnly: true
        battery_ext_2_trend:
          type: string
          description: A trend description of the first external battery.
          readOnly: true
          enum:
            - CHARGE
            - CONST
            - DISCHARGE
        battery_ext_2_trend_slope:
          type: number
          description: >-
            The charge/discharge slope of the first external battery readings,
            in mV/h.
          readOnly: true
        battery_ext_3_pct:
          type: number
          description: First external battery level in percent.
          readOnly: true
        battery_ext_3_voltage:
          type: number
          description: Raw voltage reading of the first external battery.
          readOnly: true
        battery_ext_3_trend:
          type: string
          description: A trend description of the first external battery.
          readOnly: true
          enum:
            - CHARGE
            - CONST
            - DISCHARGE
        battery_ext_3_trend_slope:
          type: number
          description: >-
            The charge/discharge slope of the first external battery readings,
            in mV/h.
          readOnly: true
        battery_ext_4_pct:
          type: number
          description: First external battery level in percent.
          readOnly: true
        battery_ext_4_voltage:
          type: number
          description: Raw voltage reading of the first external battery.
          readOnly: true
        battery_ext_4_trend:
          type: string
          description: A trend description of the first external battery.
          readOnly: true
          enum:
            - CHARGE
            - CONST
            - DISCHARGE
        battery_ext_4_trend_slope:
          type: number
          description: >-
            The charge/discharge slope of the first external battery readings,
            in mV/h.
          readOnly: true
        fuel_level:
          type: number
          description: The fuel level in liters.
          readOnly: true
        fuel_level_pct:
          type: number
          description: The fuel level as a percentage of the whole tank size.
          readOnly: true
        fuel_level_voltage:
          type: number
          description: The raw voltage readout from the fuel level sensor.
          readOnly: true
        fuel_last_update:
          type: string
          format: date-time
          description: >
            The date/time of the last fuel reading. Often, the fuel level is not
            available when the

            motor is turned off.
          readOnly: true
        fuel_rate_lh:
          type: number
          description: >
            The current fuel rate in liters per hour for internal combustion
            engines (ICE). 

            This value can be converted to liters/100km using the formula:
            (fuel_rate_lh / speed_kmh) * 100
          readOnly: true
        current_power_w:
          type: number
          description: >
            The current power consumption in Watts for electric vehicles. This
            value can be positive (energy used) 

            or negative (regenerative braking). Can be converted to kWh/100km
            using: (current_power_w / speed_kmh) * 100
          readOnly: true
        expected_range:
          type: number
          description: >-
            Given the current vehicle_state, how far this vehicle still can
            travel.
          readOnly: true
        expected_range_current_power:
          type: number
          description: Expected range based on current power consumption, in meters.
          readOnly: true
        expected_range_average_power:
          type: number
          description: Expected range based on average power consumption, in meters.
          readOnly: true
        remaining_energy_wh:
          type: number
          description: >-
            The remaining energy in the battery (cumulative over all batteries),
            in Wh.
          readOnly: true
        remaining_energy_ah:
          type: number
          description: >-
            The remaining energy in the battery (cumulative over all batteries),
            in Ah.
          readOnly: true
        state_of_charge_pct:
          type: number
          description: >-
            The state of charge of the battery (cumulative over all batteries),
            in %.
          readOnly: true
        time_to_empty_at_current_power_s:
          type: number
          description: >-
            Time to empty at current power consumption, in seconds. Indicates
            how long the vehicle can continue driving with the current power
            setting until the battery/fuel is empty.
          readOnly: true
        distance_to_home:
          type: number
          description: Distance to closest home/harbor, in m.
          readOnly: true
        distance_to_shore:
          type: number
          description: Distance to the closest shore (for boats), in m.
          readOnly: true
        shore_zone:
          type: string
          description: >
            Type of shore zone a boat is currently in. Note that `ON_ROAD`
            describes a boat that is 

            currently being transported out of the water. Road-based vehicles
            have different zone descriptors.
          readOnly: true
          enum:
            - INNER
            - OUTER
            - OPEN_SEA
            - ON_ROAD
        active_geofences:
          type: array
          items:
            type: string
          description: >
            The geofences with are currently active for this vehicle (i.e., the
            vehicle is in those geofences).
          readOnly: true
        temp_1:
          type: number
          description: Temperature reading of sensor 1, in °C.
          readOnly: true
        temp_2:
          type: number
          description: Temperature reading of sensor 2, in °C.
          readOnly: true
        temp_3:
          type: number
          description: Temperature reading of sensor 3, in °C.
          readOnly: true
        temp_4:
          type: number
          description: Temperature reading of sensor 4, in °C.
          readOnly: true
        temp_1_trend:
          type: string
          description: Trend of temperature sensor 1.
          readOnly: true
          enum:
            - INCR
            - CONST
            - DECR
        temp_2_trend:
          type: string
          description: Trend of temperature sensor 2.
          readOnly: true
          enum:
            - INCR
            - CONST
            - DECR
        temp_3_trend:
          type: string
          description: Trend of temperature sensor 3.
          readOnly: true
          enum:
            - INCR
            - CONST
            - DECR
        temp_4_trend:
          type: string
          description: Trend of temperature sensor 4.
          readOnly: true
          enum:
            - INCR
            - CONST
            - DECR
        sensor_temp_1_state:
          type: string
          description: State of temperature sensor 1.
          readOnly: true
        sensor_temp_2_state:
          type: string
          description: State of temperature sensor 2.
          readOnly: true
        sensor_temp_3_state:
          type: string
          description: State of temperature sensor 3.
          readOnly: true
        sensor_temp_4_state:
          type: string
          description: State of temperature sensor 4.
          readOnly: true
        sensor_relative_humidity_1_pct:
          type: number
          description: Relative humidity reading of sensor 1, in %.
          readOnly: true
        sensor_relative_humidity_2_pct:
          type: number
          description: Relative humidity reading of sensor 2, in %.
          readOnly: true
        sensor_relative_humidity_3_pct:
          type: number
          description: Relative humidity reading of sensor 3, in %.
          readOnly: true
        sensor_relative_humidity_4_pct:
          type: number
          description: Relative humidity reading of sensor 4, in %.
          readOnly: true
        sensor_relative_humidity_1_state:
          type: string
          description: State of relative humidity sensor 1.
          readOnly: true
        sensor_relative_humidity_2_state:
          type: string
          description: State of relative humidity sensor 2.
          readOnly: true
        sensor_relative_humidity_3_state:
          type: string
          description: State of relative humidity sensor 3.
          readOnly: true
        sensor_relative_humidity_4_state:
          type: string
          description: State of relative humidity sensor 4.
          readOnly: true
        sensor_battery_1_pct:
          type: number
          description: Battery level of sensor 1, in %.
          readOnly: true
        sensor_battery_2_pct:
          type: number
          description: Battery level of sensor 2, in %.
          readOnly: true
        sensor_battery_3_pct:
          type: number
          description: Battery level of sensor 3, in %.
          readOnly: true
        sensor_battery_4_pct:
          type: number
          description: Battery level of sensor 4, in %.
          readOnly: true
        temp_motor:
          type: number
          description: Temperature reading of the motor (if available), in °C.
          readOnly: true
        temp_water:
          type: number
          description: Temperature of the water (if available), in °C.
          readOnly: true
        ignition_on:
          type: boolean
          description: If the ignition is currently on.
          readOnly: true
        is_locked:
          type: boolean
          description: If the vehicle is currently locked (doors).
          readOnly: true
        landline_voltage:
          type: number
          description: Voltage of the landline connection, usually 0V or 220V.
          readOnly: true
        in_water:
          type: boolean
          description: If the vehicle is currently in the water (only for boats).
          readOnly: true
        din_1_state:
          type: boolean
          description: |
            State of digital input 1.
          readOnly: true
        din_2_state:
          type: boolean
          description: |
            State of digital input 2.
          readOnly: true
        din_3_state:
          type: boolean
          description: |
            State of digital input 3.
          readOnly: true
        din_4_state:
          type: boolean
          description: |
            State of digital input 4.
          readOnly: true
        din_5_state:
          type: boolean
          description: |
            State of digital input 5.
          readOnly: true
        dout_1_state:
          type: boolean
          description: |
            State of digital output 1.
          readOnly: true
        dout_2_state:
          type: boolean
          description: |
            State of digital output 2.
          readOnly: true
        dout_3_state:
          type: boolean
          description: |
            State of digital output 3.
          readOnly: true
        dout_4_state:
          type: boolean
          description: |
            State of digital output 4.
          readOnly: true
        dout_1_waiting_for_update:
          type: boolean
          description: >
            If digital output 1 is waiting to be updated. This happens when a
            command

            is queued to change the digital output, but has not been transmitted
            to 

            the IoT device yet.
          readOnly: true
        dout_2_waiting_for_update:
          type: boolean
          description: >
            If digital output 2 is waiting to be updated. This happens when a
            command

            is queued to change the digital output, but has not been transmitted
            to 

            the IoT device yet.
          readOnly: true
        dout_3_waiting_for_update:
          type: boolean
          description: >
            If digital output 3 is waiting to be updated. This happens when a
            command

            is queued to change the digital output, but has not been transmitted
            to 

            the IoT device yet.
          readOnly: true
        dout_4_waiting_for_update:
          type: boolean
          description: >
            If digital output 4 is waiting to be updated. This happens when a
            command

            is queued to change the digital output, but has not been transmitted
            to 

            the IoT device yet.
          readOnly: true
        vehicle_status_can:
          $ref: '#/components/schemas/VehicleStatusCAN'
        vehicle_status_flex:
          $ref: '#/components/schemas/VehicleStatusFLEX'
        vehicle_status_obd2:
          $ref: '#/components/schemas/VehicleStatusOBD2'
        vehicle_status_n2k:
          $ref: '#/components/schemas/VehicleStatusN2K'
        vehicle_status_acim:
          $ref: '#/components/schemas/VehicleStatusACIM'
          x-del-for-docs: true
    VehicleStatusCAN:
      type: object
      title: Vehicle Status CAN
      description: >
        Additional data that is available if this vehicle is connected to a CAN
        bus. As these

        CAN buses are often vendor-specific, only a subset of the data given
        here might be present.
      readOnly: true
      properties:
        can_speed_km_h:
          type: number
          description: Current vehicle speed as given via CAN bus, in km/h.
          readOnly: true
        can_accel_pedal:
          type: number
          description: Position of acceleration pedal, in %.
          readOnly: true
        can_rpm:
          type: number
          description: >-
            Motor rounds per minute, an indication of the current power output
            of the motor.
          readOnly: true
        can_fuel_level_pct:
          type: number
          description: Fuel level as given via CAN bus, in %.
          readOnly: true
        can_fuel_level_ltr:
          type: number
          description: Fuel level as given via CAN bus, in liter.
          readOnly: true
        can_fuel_consumed_ltr:
          type: number
          description: Current fuel consumption, in liter.
          readOnly: true
        can_total_mileage_m:
          type: number
          description: Total mileage (odometer) as given via CAN bus, in m.
          readOnly: true
        can_expected_range_km:
          type: number
          description: Expected (remaining) range as given via CAN bus, in km.
          readOnly: true
        can_alert_unplug:
          type: number
          description: >
            Alert state of CAN bus unplugging action, where `0` means that no
            alert is 

            generated, and `1` means that an alert is generated.
          readOnly: true
        can_alert_towing:
          type: number
          description: >
            Alert state of CAN bus towing action (accelerometer detection of
            movement), where `0`

            means no alert is generated, and `1` means that an alert is
            generated.
          readOnly: true
        can_battery_voltage_v:
          type: number
          description: Current battery voltage as given via CAN bus, in V.
          readOnly: true
        can_battery_1_soc_pct:
          type: number
          description: Current battery state-of-charge as given via CAN bus, in %.
          readOnly: true
        can_battery_1_soh_pct:
          type: number
          description: Current battery state-of-health as given via CAN bus, in %.
          readOnly: true
        can_engine_voltage_v:
          type: number
          description: Current engine voltage as given via CAN bus, in V.
          readOnly: true
        can_engine_current_a:
          type: number
          description: Momentarily battery current as given via CAN bus, in A.
          readOnly: true
        can_electr_pwr_consumed_kwh:
          type: number
          description: Electric power consumed, as given via CAN bus.
          readOnly: true
        can_min_battery_voltage_allowed_v:
          type: number
          description: Minimum battery voltage allowed (before battery shuts down).
          readOnly: true
        can_max_charg_current_allowed_by_charger_a:
          type: number
          description: Maximum charging current allowed by charger.
          readOnly: true
        can_max_discharg_current_allowed_by_charger_a:
          type: number
          description: Maximum discharging current allowed by charger.
          readOnly: true
        can_max_charg_current_allowed_by_bat_a:
          type: number
          description: Maximum charging current allowed by battery.
          readOnly: true
        can_max_discharg_current_allowed_by_bat_a:
          type: number
          description: Maximum discharging current allowed by battery.
          readOnly: true
        can_flag_control_state:
          type: string
          pattern: '[01]{8}'
          description: CAN control state flags. Contact c.technology support for details.
          readOnly: true
        can_flag_security_state:
          type: string
          pattern: '[01]{16}'
          description: CAN security state flags. Contact c.technology support for details.
          readOnly: true
        can_control_state:
          type: array
          items:
            type: string
          description: Array with decoded control state flags.
          readOnly: true
        can_last_update:
          type: string
          format: date-time
          description: Last time for which a CAN message was received.
          readOnly: true
        can_additional_fields:
          type: object
          description: Additional and custom fields sent via CAN bus.
          readOnly: true
        can_accel_pedal_last_update:
          type: string
          format: date-time
          nullable: true
        can_rpm_last_update:
          type: string
          format: date-time
          nullable: true
        can_engine_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        can_engine_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        can_electr_pwr_consumed_kwh_last_update:
          type: string
          format: date-time
          nullable: true
        can_battery_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        can_battery_1_soc_pct_last_update:
          type: string
          format: date-time
          nullable: true
        can_battery_1_soh_pct_last_update:
          type: string
          format: date-time
          nullable: true
        can_min_battery_voltage_allowed_v_last_update:
          type: string
          format: date-time
          nullable: true
        can_max_charg_current_allowed_by_charger_a_last_update:
          type: string
          format: date-time
          nullable: true
        can_max_discharg_current_allowed_by_charger_a_last_update:
          type: string
          format: date-time
          nullable: true
        can_max_charg_current_allowed_by_bat_a_last_update:
          type: string
          format: date-time
          nullable: true
        can_max_discharg_current_allowed_by_bat_a_last_update:
          type: string
          format: date-time
          nullable: true
        can_fuel_level_pct_last_update:
          type: string
          format: date-time
          nullable: true
        can_fuel_level_ltr_last_update:
          type: string
          format: date-time
          nullable: true
        can_fuel_consumed_ltr_last_update:
          type: string
          format: date-time
          nullable: true
        can_speed_km_h_last_update:
          type: string
          format: date-time
          nullable: true
        can_total_mileage_m_last_update:
          type: string
          format: date-time
          nullable: true
        can_expected_range_km_last_update:
          type: string
          format: date-time
          nullable: true
        can_alert_unplug_last_update:
          type: string
          format: date-time
          nullable: true
        can_alert_towing_last_update:
          type: string
          format: date-time
          nullable: true
        can_flag_control_state_last_update:
          type: string
          format: date-time
          nullable: true
        can_flag_security_state_last_update:
          type: string
          format: date-time
          nullable: true
        can_additional_fields_last_update:
          type: string
          format: date-time
          nullable: true
        can_control_state_last_update:
          type: string
          format: date-time
          nullable: true
    VehicleStatusFLEX:
      type: object
      title: Vehicle Status CAN FLEX
      description: >
        Additional data that is available if this vehicle is connected to a CAN
        FLEX bus. As these

        CAN FLEX  buses are often vendor-specific, only a subset of the data
        given here might be present.
      readOnly: true
      properties:
        flex_last_update:
          type: string
          format: date-time
          description: Last time for which a CAN FLEX message was received.
          readOnly: true
        flex_throttle_position_pct:
          type: number
          description: Current throttle position as given via CAN FLEX bus, in %.
          readOnly: true
        flex_brake_pressed:
          type: boolean
          description: If the brake is currently pressed.
          readOnly: true
        flex_charge_plugged:
          type: boolean
          description: If the vehicle is currently plugged in for charging.
          readOnly: true
        flex_kill_switch_active:
          type: boolean
          description: If the kill switch is currently active.
          readOnly: true
        flex_kickstand_release_status:
          type: boolean
          description: If the kickstand is currently released.
          readOnly: true
        flex_powertrain_state:
          type: integer
          description: The current powertrain state.
          readOnly: true
        flex_malfunction_indication:
          type: boolean
          description: The current malfunction indication.
          readOnly: true
        flex_estimated_range_km:
          type: number
          description: The estimated range in km.
          readOnly: true
        flex_soc_battery_pct:
          type: number
          description: The state of charge of the battery in %.
          readOnly: true
        flex_remaining_capacity_ah:
          type: number
          description: The remaining capacity of the battery in Ah.
          readOnly: true
        flex_full_charge_capacity_ah:
          type: number
          description: The full charge capacity of the battery in Ah.
          readOnly: true
        flex_drive_mode:
          type: integer
          description: The current drive mode.
          readOnly: true
        flex_total_distance_km:
          type: number
          description: The total distance driven in km.
          readOnly: true
        flex_vehicle_speed_km_h:
          type: number
          description: The current vehicle speed in km/h.
          readOnly: true
        flex_ignition_status:
          type: integer
          description: The current ignition status.
          readOnly: true
        flex_top_case_sensor:
          type: boolean
          description: The current top case sensor status.
          readOnly: true
        flex_max_available_power_w:
          type: number
          description: The maximum available power in W.
          readOnly: true
        flex_handlebar_lock:
          type: boolean
          description: The current handlebar lock status.
          readOnly: true
        flex_rear_brake_pressed:
          type: boolean
          description: If the rear brake is currently pressed.
          readOnly: true
        flex_com_error:
          type: integer
          description: If a communication error is currently present.
          readOnly: true
        flex_rpm:
          type: number
          description: The current RPM.
          readOnly: true
        flex_torque_current_a:
          type: number
          description: The current torque in A.
          readOnly: true
        flex_sn_high:
          type: integer
          description: The current high serial number.
          readOnly: true
        flex_sn_low:
          type: integer
          description: The current low serial number.
          readOnly: true
        flex_lowest_battery_voltage_v:
          type: number
          description: The lowest battery voltage in V.
          readOnly: true
        flex_lowest_battery_id:
          type: integer
          description: The ID of the lowest battery.
          readOnly: true
        flex_highest_battery_voltage_v:
          type: number
          description: The highest battery voltage in V.
          readOnly: true
        flex_highest_battery_id:
          type: integer
          description: The ID of the highest battery.
          readOnly: true
        flex_highest_mismatch_voltage_v:
          type: number
          description: The highest mismatch voltage in V.
          readOnly: true
        flex_highest_mismatch_id:
          type: integer
          description: The ID of the highest mismatch.
          readOnly: true
        flex_lowest_battery_temperature_deg_c:
          type: number
          description: The lowest battery temperature in °C.
          readOnly: true
        flex_lowest_temperature_battery_id:
          type: integer
          description: The ID of the lowest temperature battery.
          readOnly: true
        flex_highest_battery_temperature_deg_c:
          type: number
          description: The highest battery temperature in °C.
          readOnly: true
        flex_highest_temperature_battery_id:
          type: integer
          description: The ID of the highest temperature battery.
          readOnly: true
        flex_time_to_full_load_s:
          type: number
          description: The time to full load in s.
          readOnly: true
        flex_time_to_empty_s:
          type: number
          description: The time to empty in s.
          readOnly: true
        flex_time_to_full_s:
          type: number
          description: The time to full in s.
          readOnly: true
        flex_cluster_state:
          type: integer
          description: The current cluster state.
          readOnly: true
        flex_cluster_soc_pct:
          type: number
          description: The current cluster state of charge in %.
          readOnly: true
        flex_max_discharge_current_a:
          type: number
          description: The maximum discharge current in A.
          readOnly: true
        flex_recuperation_allowed:
          type: boolean
          description: If recuperation is currently allowed.
          readOnly: true
        flex_switch_process_needed:
          type: boolean
          description: If a switch process is currently needed.
          readOnly: true
        flex_soc_switch_level_pct:
          type: number
          description: The state of charge switch level in %.
          readOnly: true
        flex_part_charge_capacity_ah:
          type: number
          description: The partial charge capacity in Ah.
          readOnly: true
        flex_cluster_voltage_v:
          type: number
          description: The current cluster voltage in V.
          readOnly: true
        flex_cluster_current_a:
          type: number
          description: The current cluster current in A.
          readOnly: true
        flex_major_version:
          type: integer
          description: The current major version.
          readOnly: true
        flex_minor_version:
          type: integer
          description: The current minor version.
          readOnly: true
        flex_patch_version:
          type: integer
          description: The current patch version.
          readOnly: true
        flex_recognized_batteries:
          type: integer
          description: The number of recognized batteries.
          readOnly: true
        flex_activated_batteries:
          type: integer
          description: The number of activated batteries.
          readOnly: true
        flex_faulty_batteries:
          type: integer
          description: The number of faulty batteries.
          readOnly: true
        flex_battery_1_voltage_v:
          type: number
          description: The voltage of battery 1 in V.
          readOnly: true
        flex_battery_1_current_a:
          type: number
          description: The current of battery 1 in A.
          readOnly: true
        flex_battery_1_state:
          type: integer
          description: The state of battery 1.
          readOnly: true
        flex_battery_1_soc_pct:
          type: number
          description: The state of charge of battery 1 in %.
          readOnly: true
        flex_battery_1_temperature_1_deg_c:
          type: number
          description: The temperature of battery 1 in °C.
          readOnly: true
        flex_battery_1_temperature_2_deg_c:
          type: number
          description: The temperature of battery 1 in °C.
          readOnly: true
        flex_battery_1_power_stage_temp_deg_c:
          type: number
          description: The power stage temperature of battery 1 in °C.
          readOnly: true
        flex_battery_1_remaining_capacity_ah:
          type: number
          description: The remaining capacity of battery 1 in Ah.
          readOnly: true
        flex_battery_2_voltage_v:
          type: number
          description: The voltage of battery 2 in V.
          readOnly: true
        flex_battery_2_current_a:
          type: number
          description: The current of battery 2 in A.
          readOnly: true
        flex_battery_2_state:
          type: integer
          description: The state of battery 2.
          readOnly: true
        flex_battery_2_soc_pct:
          type: number
          description: The state of charge of battery 2 in %.
          readOnly: true
        flex_battery_2_temperature_1_deg_c:
          type: number
          description: The temperature of battery 2 in °C.
          readOnly: true
        flex_battery_2_temperature_2_deg_c:
          type: number
          description: The temperature of battery 2 in °C.
          readOnly: true
        flex_battery_2_power_stage_temp_deg_c:
          type: number
          description: The power stage temperature of battery 2 in °C.
          readOnly: true
        flex_battery_2_remaining_capacity_ah:
          type: number
          description: The remaining capacity of battery 2 in Ah.
          readOnly: true
        flex_battery_id_0_error_code:
          type: integer
          description: The error code of battery 0.
          readOnly: true
        flex_battery_id_1_error_code:
          type: integer
          description: The error code of battery 1.
          readOnly: true
        flex_cluster_error_code:
          type: integer
          description: The error code of the cluster.
          readOnly: true
        flex_max_charge_current_a:
          type: number
          description: The maximum charge current in A.
          readOnly: true
        flex_lowest_battery_2_temperature_deg_c:
          type: number
          description: The lowest battery 2 temperature in °C.
          readOnly: true
        flex_highest_battery_2_temperature_deg_c:
          type: number
          description: The highest battery 2 temperature in °C.
          readOnly: true
        flex_lowest_battery_2_voltage_v:
          type: number
          description: The lowest battery 2 voltage in V.
          readOnly: true
        flex_highest_battery_2_voltage_v:
          type: number
          description: The highest battery 2 voltage in V.
          readOnly: true
        flex_throttle_position_pct_last_update:
          type: string
          format: date-time
          nullable: true
        flex_brake_pressed_last_update:
          type: string
          format: date-time
          nullable: true
        flex_charge_plugged_last_update:
          type: string
          format: date-time
          nullable: true
        flex_kill_switch_active_last_update:
          type: string
          format: date-time
          nullable: true
        flex_kickstand_release_status_last_update:
          type: string
          format: date-time
          nullable: true
        flex_powertrain_state_last_update:
          type: string
          format: date-time
          nullable: true
        flex_malfunction_indication_last_update:
          type: string
          format: date-time
          nullable: true
        flex_estimated_range_km_last_update:
          type: string
          format: date-time
          nullable: true
        flex_soc_battery_pct_last_update:
          type: string
          format: date-time
          nullable: true
        flex_remaining_capacity_ah_last_update:
          type: string
          format: date-time
          nullable: true
        flex_full_charge_capacity_ah_last_update:
          type: string
          format: date-time
          nullable: true
        flex_drive_mode_last_update:
          type: string
          format: date-time
          nullable: true
        flex_total_distance_km_last_update:
          type: string
          format: date-time
          nullable: true
        flex_vehicle_speed_km_h_last_update:
          type: string
          format: date-time
          nullable: true
        flex_ignition_status_last_update:
          type: string
          format: date-time
          nullable: true
        flex_top_case_sensor_last_update:
          type: string
          format: date-time
          nullable: true
        flex_max_available_power_w_last_update:
          type: string
          format: date-time
          nullable: true
        flex_handlebar_lock_last_update:
          type: string
          format: date-time
          nullable: true
        flex_rear_brake_pressed_last_update:
          type: string
          format: date-time
          nullable: true
        flex_com_error_last_update:
          type: string
          format: date-time
          nullable: true
        flex_rpm_last_update:
          type: string
          format: date-time
          nullable: true
        flex_torque_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        flex_sn_high_last_update:
          type: string
          format: date-time
          nullable: true
        flex_sn_low_last_update:
          type: string
          format: date-time
          nullable: true
        flex_lowest_battery_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_lowest_battery_id_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_battery_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_battery_id_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_mismatch_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_mismatch_id_last_update:
          type: string
          format: date-time
          nullable: true
        flex_lowest_battery_temperature_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_lowest_temperature_battery_id_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_battery_temperature_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_temperature_battery_id_last_update:
          type: string
          format: date-time
          nullable: true
        flex_time_to_full_load_s_last_update:
          type: string
          format: date-time
          nullable: true
        flex_time_to_empty_s_last_update:
          type: string
          format: date-time
          nullable: true
        flex_time_to_full_s_last_update:
          type: string
          format: date-time
          nullable: true
        flex_cluster_state_last_update:
          type: string
          format: date-time
          nullable: true
        flex_cluster_soc_pct_last_update:
          type: string
          format: date-time
          nullable: true
        flex_max_discharge_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        flex_recuperation_allowed_last_update:
          type: string
          format: date-time
          nullable: true
        flex_switch_process_needed_last_update:
          type: string
          format: date-time
          nullable: true
        flex_soc_switch_level_pct_last_update:
          type: string
          format: date-time
          nullable: true
        flex_part_charge_capacity_ah_last_update:
          type: string
          format: date-time
          nullable: true
        flex_cluster_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_cluster_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        flex_major_version_last_update:
          type: string
          format: date-time
          nullable: true
        flex_minor_version_last_update:
          type: string
          format: date-time
          nullable: true
        flex_patch_version_last_update:
          type: string
          format: date-time
          nullable: true
        flex_recognized_batteries_last_update:
          type: string
          format: date-time
          nullable: true
        flex_activated_batteries_last_update:
          type: string
          format: date-time
          nullable: true
        flex_faulty_batteries_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_state_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_soc_pct_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_temperature_1_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_temperature_2_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_power_stage_temp_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_1_remaining_capacity_ah_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_state_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_soc_pct_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_temperature_1_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_temperature_2_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_power_stage_temp_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_battery_2_remaining_capacity_ah_last_update:
          type: string
          format: date-time
          nullable: true
        flex_max_charge_current_a_last_update:
          type: string
          format: date-time
          nullable: true
        flex_lowest_battery_2_temperature_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_battery_2_temperature_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        flex_lowest_battery_2_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        flex_highest_battery_2_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
    VehicleStatusOBD2:
      type: object
      title: Vehicle Status OBD2
      description: >
        Additional data that is available if this vehicle is connected to an
        on-board-diagnostics

        (OBD2) bus system. These systems are mandatory for cars since approx.
        2000, and will become 

        mandatory for motorcycles and other specialized vehicles from roughly
        2025 on.
      readOnly: true
      properties:
        obd2_vehicle_speed_km_h:
          type: number
          description: Current vehicle speed as given via OBD2 bus, in km/h.
          readOnly: true
        obd2_throttle_position_pct:
          type: number
          description: Current throttle position as given via OBD2 bus, in %.
          readOnly: true
        obd2_engine_load_pct:
          type: number
          description: Current engine load as given via OBD2 bus, in %.
          readOnly: true
        obd2_engine_rpm:
          type: number
          description: Current engine rounds per minute (RPM) as given via OBD2 bus.
          readOnly: true
        obd2_fuel_level_pct:
          type: number
          description: Current fuel level, in %.
          readOnly: true
        obd2_fuel_level_ltr:
          type: number
          description: Current fuel level, in liters.
          readOnly: true
        obd2_fuel_rate_l_h:
          type: number
          description: Current fuel rate, in l/h.
          readOnly: true
        obd2_fuel_consumed_ltr:
          type: number
          description: Fuel consumed, in liters.
          readOnly: true
        obd2_fuel_pressure_kpa:
          type: number
          description: Current fuel pressure, in kPa.
          readOnly: true
        obd2_expected_range_km:
          type: number
          description: Expected range as given via OBD2 bus, in km.
          readOnly: true
        obd2_hybrid_battery_life_pct:
          type: number
          description: Battery state of charge (for electric vehicles), in %.
          readOnly: true
        obd2_oil_temp_deg_c:
          type: number
          description: Motor oil temperature, in °C.
          readOnly: true
        obd2_coolant_temp_deg_c:
          type: number
          description: Motor coolant temperature, in °C.
          readOnly: true
        obd2_intake_air_temp_deg_c:
          type: number
          description: Motor intake air temperature, in °C.
          readOnly: true
        obd2_ambient_air_temp_deg_c:
          type: number
          description: Ambient air temperature as given via OBD2 bus, in °C.
          readOnly: true
        obd2_control_module_voltage_v:
          type: number
          description: Battery / control module voltage, in V.
          readOnly: true
        obd2_last_update:
          type: string
          format: date-time
          description: Last time for which an OBD2 message was received.
          readOnly: true
        obd2_vehicle_speed_km_h_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_throttle_position_pct_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_engine_load_pct_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_engine_rpm_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_fuel_level_pct_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_fuel_level_ltr_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_fuel_rate_l_h_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_fuel_consumed_ltr_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_fuel_pressure_kpa_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_expected_range_km_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_hybrid_battery_life_pct_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_oil_temp_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_coolant_temp_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_intake_air_temp_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_ambient_air_temp_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        obd2_control_module_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
    VehicleStatusN2K:
      type: object
      title: Vehicle Status N2K
      description: >
        Additional data that is available if this vehicle is connected to an
        NMEA 2000 bus. The 

        NMEA bus system is standardized by the National Marine Electronics
        Association and primarily

        found on larger vessels or more modern boats.
      readOnly: true
      properties:
        n2k_air_temp_deg_c:
          type: number
          format: float
          description: Temperature of the air in degrees Celsius.
          nullable: true
        n2k_air_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the air temperature.
          nullable: true
        n2k_battery_1_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 1 in ampere-hours.
          nullable: true
        n2k_battery_1_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 1.
          nullable: true
        n2k_battery_1_current_a:
          type: number
          format: float
          description: Current of battery 1 in amperes.
          nullable: true
        n2k_battery_1_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 1.
          nullable: true
        n2k_battery_1_health_pct:
          type: number
          format: float
          description: Health percentage of battery 1.
          nullable: true
        n2k_battery_1_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 1.
          nullable: true
        n2k_battery_1_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 1 in volts.
          nullable: true
        n2k_battery_1_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 1.
          nullable: true
        n2k_battery_1_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 1.
          nullable: true
        n2k_battery_1_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            1.
          nullable: true
        n2k_battery_1_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 1 in degrees Celsius.
          nullable: true
        n2k_battery_1_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 1.
          nullable: true
        n2k_battery_1_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 1 in minutes.
          nullable: true
        n2k_battery_1_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 1.
          nullable: true
        n2k_battery_1_voltage_v:
          type: number
          format: float
          description: Voltage of battery 1 in volts.
          nullable: true
        n2k_battery_1_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 1.
          nullable: true
        n2k_battery_2_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 2 in ampere-hours.
          nullable: true
        n2k_battery_2_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 2.
          nullable: true
        n2k_battery_2_current_a:
          type: number
          format: float
          description: Current of battery 2 in amperes.
          nullable: true
        n2k_battery_2_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 2.
          nullable: true
        n2k_battery_2_health_pct:
          type: number
          format: float
          description: Health percentage of battery 2.
          nullable: true
        n2k_battery_2_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 2.
          nullable: true
        n2k_battery_2_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 2 in volts.
          nullable: true
        n2k_battery_2_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 2.
          nullable: true
        n2k_battery_2_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 2.
          nullable: true
        n2k_battery_2_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            2.
          nullable: true
        n2k_battery_2_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 2 in degrees Celsius.
          nullable: true
        n2k_battery_2_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 2.
          nullable: true
        n2k_battery_2_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 2 in minutes.
          nullable: true
        n2k_battery_2_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 2.
          nullable: true
        n2k_battery_2_voltage_v:
          type: number
          format: float
          description: Voltage of battery 2 in volts.
          nullable: true
        n2k_battery_2_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 2.
          nullable: true
        n2k_battery_3_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 3 in ampere-hours.
          nullable: true
        n2k_battery_3_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 3.
          nullable: true
        n2k_battery_3_current_a:
          type: number
          format: float
          description: Current of battery 3 in amperes.
          nullable: true
        n2k_battery_3_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 3.
          nullable: true
        n2k_battery_3_health_pct:
          type: number
          format: float
          description: Health percentage of battery 3.
          nullable: true
        n2k_battery_3_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 3.
          nullable: true
        n2k_battery_3_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 3 in volts.
          nullable: true
        n2k_battery_3_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 3.
          nullable: true
        n2k_battery_3_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 3.
          nullable: true
        n2k_battery_3_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            3.
          nullable: true
        n2k_battery_3_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 3 in degrees Celsius.
          nullable: true
        n2k_battery_3_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 3.
          nullable: true
        n2k_battery_3_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 3 in minutes.
          nullable: true
        n2k_battery_3_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 3.
          nullable: true
        n2k_battery_3_voltage_v:
          type: number
          format: float
          description: Voltage of battery 3 in volts.
          nullable: true
        n2k_battery_3_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 3.
          nullable: true
        n2k_battery_4_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 4 in ampere-hours.
          nullable: true
        n2k_battery_4_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 4.
          nullable: true
        n2k_battery_4_current_a:
          type: number
          format: float
          description: Current of battery 4 in amperes.
          nullable: true
        n2k_battery_4_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 4.
          nullable: true
        n2k_battery_4_health_pct:
          type: number
          format: float
          description: Health percentage of battery 4.
          nullable: true
        n2k_battery_4_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 4.
          nullable: true
        n2k_battery_4_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 4 in volts.
          nullable: true
        n2k_battery_4_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 4.
          nullable: true
        n2k_battery_4_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 4.
          nullable: true
        n2k_battery_4_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            4.
          nullable: true
        n2k_battery_4_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 4 in degrees Celsius.
          nullable: true
        n2k_battery_4_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 4.
          nullable: true
        n2k_battery_4_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 4 in minutes.
          nullable: true
        n2k_battery_4_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 4.
          nullable: true
        n2k_battery_4_voltage_v:
          type: number
          format: float
          description: Voltage of battery 4 in volts.
          nullable: true
        n2k_battery_4_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 4.
          nullable: true
        n2k_battery_5_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 5 in ampere-hours.
          nullable: true
        n2k_battery_5_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 5.
          nullable: true
        n2k_battery_5_current_a:
          type: number
          format: float
          description: Current of battery 5 in amperes.
          nullable: true
        n2k_battery_5_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 5.
          nullable: true
        n2k_battery_5_health_pct:
          type: number
          format: float
          description: Health percentage of battery 5.
          nullable: true
        n2k_battery_5_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 5.
          nullable: true
        n2k_battery_5_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 5 in volts.
          nullable: true
        n2k_battery_5_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 5.
          nullable: true
        n2k_battery_5_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 5.
          nullable: true
        n2k_battery_5_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            5.
          nullable: true
        n2k_battery_5_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 5 in degrees Celsius.
          nullable: true
        n2k_battery_5_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 5.
          nullable: true
        n2k_battery_5_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 5 in minutes.
          nullable: true
        n2k_battery_5_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 5.
          nullable: true
        n2k_battery_5_voltage_v:
          type: number
          format: float
          description: Voltage of battery 5 in volts.
          nullable: true
        n2k_battery_5_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 5.
          nullable: true
        n2k_battery_6_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 6 in ampere-hours.
          nullable: true
        n2k_battery_6_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 6.
          nullable: true
        n2k_battery_6_current_a:
          type: number
          format: float
          description: Current of battery 6 in amperes.
          nullable: true
        n2k_battery_6_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 6.
          nullable: true
        n2k_battery_6_health_pct:
          type: number
          format: float
          description: Health percentage of battery 6.
          nullable: true
        n2k_battery_6_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 6.
          nullable: true
        n2k_battery_6_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 6 in volts.
          nullable: true
        n2k_battery_6_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 6.
          nullable: true
        n2k_battery_6_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 6.
          nullable: true
        n2k_battery_6_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            6.
          nullable: true
        n2k_battery_6_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 6 in degrees Celsius.
          nullable: true
        n2k_battery_6_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 6.
          nullable: true
        n2k_battery_6_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 6 in minutes.
          nullable: true
        n2k_battery_6_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 6.
          nullable: true
        n2k_battery_6_voltage_v:
          type: number
          format: float
          description: Voltage of battery 6 in volts.
          nullable: true
        n2k_battery_6_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 6.
          nullable: true
        n2k_battery_7_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 7 in ampere-hours.
          nullable: true
        n2k_battery_7_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 7.
          nullable: true
        n2k_battery_7_current_a:
          type: number
          format: float
          description: Current of battery 7 in amperes.
          nullable: true
        n2k_battery_7_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 7.
          nullable: true
        n2k_battery_7_health_pct:
          type: number
          format: float
          description: Health percentage of battery 7.
          nullable: true
        n2k_battery_7_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 7.
          nullable: true
        n2k_battery_7_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 7 in volts.
          nullable: true
        n2k_battery_7_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 7.
          nullable: true
        n2k_battery_7_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 7.
          nullable: true
        n2k_battery_7_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            7.
          nullable: true
        n2k_battery_7_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 7 in degrees Celsius.
          nullable: true
        n2k_battery_7_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 7.
          nullable: true
        n2k_battery_7_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 7 in minutes.
          nullable: true
        n2k_battery_7_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 7.
          nullable: true
        n2k_battery_7_voltage_v:
          type: number
          format: float
          description: Voltage of battery 7 in volts.
          nullable: true
        n2k_battery_7_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 7.
          nullable: true
        n2k_battery_8_capacity_ah:
          type: number
          format: float
          description: Capacity of battery 8 in ampere-hours.
          nullable: true
        n2k_battery_8_capacity_ah_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of battery 8.
          nullable: true
        n2k_battery_8_current_a:
          type: number
          format: float
          description: Current of battery 8 in amperes.
          nullable: true
        n2k_battery_8_current_a_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the current of battery 8.
          nullable: true
        n2k_battery_8_health_pct:
          type: number
          format: float
          description: Health percentage of battery 8.
          nullable: true
        n2k_battery_8_health_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the health percentage of battery 8.
          nullable: true
        n2k_battery_8_ripple_voltage_v:
          type: number
          format: float
          description: Ripple voltage of battery 8 in volts.
          nullable: true
        n2k_battery_8_ripple_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the ripple voltage of battery 8.
          nullable: true
        n2k_battery_8_soc_pct:
          type: number
          format: float
          description: State of charge percentage of battery 8.
          nullable: true
        n2k_battery_8_soc_pct_last_update:
          type: string
          format: date-time
          description: >-
            Last update timestamp for the state of charge percentage of battery
            8.
          nullable: true
        n2k_battery_8_temp_deg_c:
          type: number
          format: float
          description: Temperature of battery 8 in degrees Celsius.
          nullable: true
        n2k_battery_8_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of battery 8.
          nullable: true
        n2k_battery_8_time_remaining_min:
          type: number
          format: float
          description: Time remaining for battery 8 in minutes.
          nullable: true
        n2k_battery_8_time_remaining_min_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the time remaining for battery 8.
          nullable: true
        n2k_battery_8_voltage_v:
          type: number
          format: float
          description: Voltage of battery 8 in volts.
          nullable: true
        n2k_battery_8_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the voltage of battery 8.
          nullable: true
        n2k_black_water_tank_1_capacity_m3:
          type: number
          format: float
          description: Capacity of the black water tank in cubic meters.
          nullable: true
        n2k_black_water_tank_1_capacity_m3_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of the black water tank.
          nullable: true
        n2k_black_water_tank_1_level_ltr:
          type: number
          format: float
          description: Level of black water in liters.
          nullable: true
        n2k_black_water_tank_1_level_ltr_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the level of black water.
          nullable: true
        n2k_black_water_tank_1_level_pct:
          type: number
          format: float
          description: Percentage level of black water.
          nullable: true
        n2k_black_water_tank_1_level_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the percentage level of black water.
          nullable: true
        n2k_charger_state:
          type: number
          format: float
          description: State of the charger.
          nullable: true
        n2k_charger_state_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the state of the charger.
          nullable: true
        n2k_engine_1_alternator_voltage_v:
          type: number
          format: float
          description: Alternator voltage of engine 1 in volts.
          nullable: true
        n2k_engine_1_alternator_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the alternator voltage of engine 1.
          nullable: true
        n2k_engine_1_coolant_pressure_kpa:
          type: number
          format: float
          description: Coolant pressure of engine 1 in kilopascals.
          nullable: true
        n2k_engine_1_coolant_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the coolant pressure of engine 1.
          nullable: true
        n2k_engine_1_fuel_pressure_kpa:
          type: number
          format: float
          description: Fuel pressure of engine 1 in kilopascals.
          nullable: true
        n2k_engine_1_fuel_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the fuel pressure of engine 1.
          nullable: true
        n2k_engine_1_fuel_rate_l_h:
          type: number
          format: float
          description: Fuel rate of engine 1 in liters per hour.
          nullable: true
        n2k_engine_1_fuel_rate_l_h_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the fuel rate of engine 1.
          nullable: true
        n2k_engine_1_load_pct:
          type: number
          format: float
          description: Load percentage of engine 1.
          nullable: true
        n2k_engine_1_load_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the load percentage of engine 1.
          nullable: true
        n2k_engine_1_oil_pressure_kpa:
          type: number
          format: float
          description: Oil pressure of engine 1 in kilopascals.
          nullable: true
        n2k_engine_1_oil_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the oil pressure of engine 1.
          nullable: true
        n2k_engine_1_oil_temp_deg_c:
          type: number
          format: float
          description: Oil temperature of engine 1 in degrees Celsius.
          nullable: true
        n2k_engine_1_oil_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the oil temperature of engine 1.
          nullable: true
        n2k_engine_1_seconds:
          type: number
          format: float
          description: Seconds of operation for engine 1.
          nullable: true
        n2k_engine_1_seconds_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the seconds of operation for engine 1.
          nullable: true
        n2k_engine_1_status_1_flags:
          type: array
          items:
            $ref: '#/components/schemas/N2KStatus1Flags'
          description: Status flags 1 for engine 1.
          nullable: true
        n2k_engine_1_status_1_flags_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the status flags 1 of engine 1.
          nullable: true
        n2k_engine_1_status_2_flags:
          type: array
          items:
            $ref: '#/components/schemas/N2KStatus2Flags'
          description: Status flags 2 for engine 1.
          nullable: true
        n2k_engine_1_status_2_flags_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the status flags 2 of engine 1.
          nullable: true
        n2k_engine_1_temp_deg_c:
          type: number
          format: float
          description: Temperature of engine 1 in degrees Celsius.
          nullable: true
        n2k_engine_1_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of engine 1.
          nullable: true
        n2k_engine_1_torque_pct:
          type: number
          format: float
          description: Torque percentage of engine 1.
          nullable: true
        n2k_engine_1_torque_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the torque percentage of engine 1.
          nullable: true
        n2k_engine_1_speed_rpm:
          type: number
          format: float
          description: Engine speed of engine 1 in revolutions per minute.
        n2k_engine_1_speed_rpm_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the engine speed of engine 1.
          nullable: true
        n2k_engine_1_boost_pressure_kpa:
          type: number
          format: float
          description: Boost pressure of engine 1 in kilopascals.
        n2k_engine_1_boost_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the engine 1 boost pressure.
          nullable: true
        n2k_engine_1_tilt_trim_pct:
          type: number
          format: float
          description: Tilt/trim angle of engine 1 in percent.
        n2k_engine_1_tilt_trim_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the engine 1 tilt/trim.
          nullable: true
        n2k_engine_2_alternator_voltage_v:
          type: number
          format: float
          description: Alternator voltage of engine 2 in volts.
          nullable: true
        n2k_engine_2_alternator_voltage_v_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the alternator voltage of engine 2.
          nullable: true
        n2k_engine_2_coolant_pressure_kpa:
          type: number
          format: float
          description: Coolant pressure of engine 2 in kilopascals.
          nullable: true
        n2k_engine_2_coolant_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the coolant pressure of engine 2.
          nullable: true
        n2k_engine_2_fuel_pressure_kpa:
          type: number
          format: float
          description: Fuel pressure of engine 2 in kilopascals.
          nullable: true
        n2k_engine_2_fuel_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the fuel pressure of engine 2.
          nullable: true
        n2k_engine_2_fuel_rate_l_h:
          type: number
          format: float
          description: Fuel rate of engine 2 in liters per hour.
          nullable: true
        n2k_engine_2_fuel_rate_l_h_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the fuel rate of engine 2.
          nullable: true
        n2k_engine_2_load_pct:
          type: number
          format: float
          description: Load percentage of engine 2.
          nullable: true
        n2k_engine_2_load_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the load percentage of engine 2.
          nullable: true
        n2k_engine_2_oil_pressure_kpa:
          type: number
          format: float
          description: Oil pressure of engine 2 in kilopascals.
          nullable: true
        n2k_engine_2_oil_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the oil pressure of engine 2.
          nullable: true
        n2k_engine_2_oil_temp_deg_c:
          type: number
          format: float
          description: Oil temperature of engine 2 in degrees Celsius.
          nullable: true
        n2k_engine_2_oil_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the oil temperature of engine 2.
          nullable: true
        n2k_engine_2_seconds:
          type: number
          format: float
          description: Seconds of operation for engine 2.
          nullable: true
        n2k_engine_2_seconds_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the seconds of operation for engine 2.
          nullable: true
        n2k_engine_2_status_1_flags:
          type: array
          items:
            $ref: '#/components/schemas/N2KStatus1Flags'
          description: Status flags 1 for engine 2.
          nullable: true
        n2k_engine_2_status_1_flags_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the status flags 1 of engine 2.
          nullable: true
        n2k_engine_2_status_2_flags:
          type: array
          items:
            $ref: '#/components/schemas/N2KStatus2Flags'
          description: Status flags 2 for engine 2.
          nullable: true
        n2k_engine_2_status_2_flags_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the status flags 2 of engine 2.
          nullable: true
        n2k_engine_2_temp_deg_c:
          type: number
          format: float
          description: Temperature of engine 2 in degrees Celsius.
          nullable: true
        n2k_engine_2_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the temperature of engine 2.
          nullable: true
        n2k_engine_2_torque_pct:
          type: number
          format: float
          description: Torque percentage of engine 2.
          nullable: true
        n2k_engine_2_torque_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the torque percentage of engine 2.
          nullable: true
        n2k_engine_2_speed_rpm:
          type: number
          format: float
          description: Engine speed of engine 2 in revolutions per minute.
        n2k_engine_2_speed_rpm_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the engine speed of engine 2.
          nullable: true
        n2k_engine_2_boost_pressure_kpa:
          type: number
          format: float
          description: Boost pressure of engine 2 in kilopascals.
        n2k_engine_2_boost_pressure_kpa_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the engine 2 boost pressure.
          nullable: true
        n2k_engine_2_tilt_trim_pct:
          type: number
          format: float
          description: Tilt/trim angle of engine 2 in percent.
        n2k_engine_2_tilt_trim_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the engine 2 tilt/trim.
          nullable: true
        n2k_expected_range_km:
          type: number
          format: float
          description: Expected range in kilometers.
          nullable: true
        n2k_expected_range_km_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the expected range in kilometers.
          nullable: true
        n2k_fresh_water_tank_1_capacity_m3:
          type: number
          format: float
          description: Capacity of the fresh water tank in cubic meters.
          nullable: true
        n2k_fresh_water_tank_1_capacity_m3_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of the fresh water tank.
          nullable: true
        n2k_fresh_water_tank_1_level_ltr:
          type: number
          format: float
          description: Level of fresh water in liters.
          nullable: true
        n2k_fresh_water_tank_1_level_ltr_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the level of fresh water.
          nullable: true
        n2k_fresh_water_tank_1_level_pct:
          type: number
          format: float
          description: Percentage level of fresh water.
          nullable: true
        n2k_fresh_water_tank_1_level_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the percentage level of fresh water.
          nullable: true
        n2k_fuel_consumed_ltr:
          type: number
          format: float
          description: Fuel consumed in liters.
          nullable: true
        n2k_fuel_consumed_ltr_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the fuel consumed.
          nullable: true
        n2k_fuel_tank_1_capacity_m3:
          type: number
          format: float
          description: Capacity of fuel tank 1 in cubic meters.
          nullable: true
        n2k_fuel_tank_1_capacity_m3_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of fuel tank 1.
          nullable: true
        n2k_fuel_tank_1_level_ltr:
          type: number
          format: float
          description: Level of fuel in tank 1 in liters.
          nullable: true
        n2k_fuel_tank_1_level_ltr_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the level of fuel in tank 1.
          nullable: true
        n2k_fuel_tank_1_level_pct:
          type: number
          format: float
          description: Percentage level of fuel in tank 1.
          nullable: true
        n2k_fuel_tank_1_level_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the percentage level of fuel in tank 1.
          nullable: true
        n2k_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the NMEA 2000 data.
          nullable: true
        n2k_oil_tank_1_capacity_m3:
          type: number
          format: float
          description: Capacity of oil tank 1 in cubic meters.
          nullable: true
        n2k_oil_tank_1_capacity_m3_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the capacity of oil tank 1.
          nullable: true
        n2k_oil_tank_1_level_ltr:
          type: number
          format: float
          description: Level of oil in tank 1 in liters.
          nullable: true
        n2k_oil_tank_1_level_ltr_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the level of oil in tank 1.
          nullable: true
        n2k_oil_tank_1_level_pct:
          type: number
          format: float
          description: Percentage level of oil in tank 1.
          nullable: true
        n2k_oil_tank_1_level_pct_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the percentage level of oil in tank 1.
          nullable: true
        n2k_water_depth_m:
          type: number
          format: float
          description: Water depth in meters.
          nullable: true
        n2k_water_depth_m_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the water depth.
          nullable: true
        n2k_water_temp_deg_c:
          type: number
          format: float
          description: Water temperature in degrees Celsius.
          nullable: true
        n2k_water_temp_deg_c_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the water temperature.
          nullable: true
        n2k_wind_speed_m_s:
          type: number
          format: float
          description: Wind speed in meters per second.
          nullable: true
        n2k_wind_speed_m_s_last_update:
          type: string
          format: date-time
          description: Last update timestamp for the wind speed.
          nullable: true
    VehicleStatusACIM:
      type: object
      title: Vehicle Status ACIM
      x-internal: true
      description: >
        Only for internal use: The vehicle_status_custom part of a vehicle
        status

        object as used within the ACIM business case.


        Note that this is only used for auto-building an SDK and testing the
        API.
      readOnly: true
      properties:
        acim_last_update:
          type: string
          format: date-time
          nullable: true
        acim_rpm_left:
          type: number
          format: float
          nullable: true
        acim_rpm_right:
          type: number
          format: float
          nullable: true
        acim_motor_temperature_left_deg_c:
          type: number
          format: float
          nullable: true
        acim_motor_temperature_right_deg_c:
          type: number
          format: float
          nullable: true
        acim_controller_temperature_left_deg_c:
          type: number
          format: float
          nullable: true
        acim_controller_temperature_right_deg_c:
          type: number
          format: float
          nullable: true
        acim_battery_voltage_v:
          type: number
          format: float
          nullable: true
        acim_battery_soc_pct:
          type: number
          format: float
          nullable: true
        acim_motor_voltage_left_v:
          type: number
          format: float
          nullable: true
        acim_motor_voltage_right_v:
          type: number
          format: float
          nullable: true
        acim_motor_current_left_a:
          type: number
          format: float
          nullable: true
        acim_motor_current_right_a:
          type: number
          format: float
          nullable: true
        acim_can_event_timestamp:
          type: string
          format: date-time
          nullable: true
        acim_rpm_left_last_update:
          type: string
          format: date-time
          nullable: true
        acim_rpm_right_last_update:
          type: string
          format: date-time
          nullable: true
        acim_motor_temperature_left_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        acim_motor_temperature_right_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        acim_controller_temperature_left_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        acim_controller_temperature_right_deg_c_last_update:
          type: string
          format: date-time
          nullable: true
        acim_battery_voltage_v_last_update:
          type: string
          format: date-time
          nullable: true
        acim_battery_soc_pct_last_update:
          type: string
          format: date-time
          nullable: true
        acim_motor_voltage_left_v_last_update:
          type: string
          format: date-time
          nullable: true
        acim_motor_voltage_right_v_last_update:
          type: string
          format: date-time
          nullable: true
        acim_motor_current_left_a_last_update:
          type: string
          format: date-time
          nullable: true
        acim_motor_current_right_a_last_update:
          type: string
          format: date-time
          nullable: true
        acim_can_event_timestamp_last_update:
          type: string
          format: date-time
          nullable: true
    APIError:
      type: object
      title: API Error
      description: |
        A generic response after any erroneous process (error of any kind). This
        response contains fields to identify the particular error.
      required:
        - header
        - error
      properties:
        header:
          $ref: '#/components/schemas/APIHeaderSingle'
        error:
          type: object
          description: |
            Containing detailed information about the error.
          properties:
            id:
              type: string
              description: |
                An internal ID given to this particular error instance.
                This might not be available, as not all errors are uniquely
                logged and given an id.
              readOnly: true
            status:
              type: number
              description: |
                An error code that can be used to identify this error.
              readOnly: true
            type:
              type: string
              description: |
                A more generic description of the error that can be 
                used to generate an error message for the user.
              readOnly: true
            severity:
              type: string
              description: |
                An indication of how severe the error is. You might use this
                to custom-tailor the response to the user.
              readOnly: true
              enum:
                - ALERT
                - HIGH
                - MEDIUM
                - LOW
            message:
              type: string
              description: |
                A human-readable English message that describes the error.
              readOnly: true
            message_i18n:
              type: string
              description: |
                A human-readable message in the primary language of the
                user that describes the error. Note that this might not
                always be available.
              readOnly: true
            data:
              type: object
              title: Error Data
              description: |
                Additional data that might be added to this error.
              readOnly: true
    N2KStatus1Flags:
      type: integer
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15
      x-enum-varnames:
        - CHECK_ENGINE
        - OVER_TEMPERATURE
        - LOW_OIL_PRESSURE
        - LOW_OIL_LEVEL
        - LOW_FUEL_PRESSURE
        - LOW_SYSTEM_VOLTAGE
        - LOW_COOLANT_LEVEL
        - WATER_FLOW
        - WATER_IN_FUEL
        - CHARGE_INDICATOR
        - PREHEAT_INDICATOR
        - HIGH_BOOST_PRESSURE
        - REV_LIMIT_EXCEEDED
        - ERG_SYSTEM
        - THROTTLE_POSITION_SENSOR
        - ENGINE_EMERGENCY_STOP_MODE
    N2KStatus2Flags:
      type: integer
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
      x-enum-varnames:
        - WARNING_1
        - WARNING_2
        - POWER_REDUCTION
        - MAINTENANCE_NEEDED
        - ENGINE_COMM_ERROR
        - SUB_OR_SECONDARY_THROTTLE
        - NEUTRAL_START_PROTECT
        - ENGINE_SHUTTING_DOWN
  responses:
    APIResponseUnauthorized:
      description: |
        You need to be authenticated to perform this action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    APIResponseForbidden:
      description: |
        You have no permission to perform this action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    APIResponseInternalServerError:
      description: |
        The server encountered an internal error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      description: |
        Note that the API key has to be sent as `Token 123` where `123` is
        the key you received after logging in or by creating on the developer
        dashboard.
      name: Authorization

````