openapi: 3.0.3
info:
  version: 2.8.0
  title: INVERS Telematics Unit Configuration API
  contact:
    name: INVERS GmbH
    url: https://developers.invers.com
  x-api-id: b369b4b1-e467-41ee-84c7-dc7570e4ea0a
  x-audience: external-public
  description: |
    The INVERS Telematics Unit Configuration API is intended for INVERS customers who need programmatic access to integrate their applications with the INVERS platform.

    The base URL for all endpoints described here is `https://api.invers.com`.
    Learn more in our [Integration Guide](https://developers.invers.com/integration-guide/) and
    [common API rules](https://developers.invers.com/integration-guide/api-basics/).

    Allows you to configure features and settings for telematics units used in your OneAPI vehicles.
servers:
  - url: https://api.invers.com
    description: Telematics Unit Configuration API
tags:
  - name: Feature configuration
    description: Resources to manage the feature configuration
  - name: Feature configuration (bulk)
    description: Resources to manage the feature configuration in bulks
  - name: Tracking
    description: Resources to configure the tracking feature
  - name: Damage Detection
    description: Resources to configure the damage detection feature
  - name: Smoke Detection
    description: Resources to configure the smoke detection feature
  - name: Speeding Detection
    description: Resources to configure the speeding detection feature
  - name: Anomaly Detection
    description: Resources to configure the anomaly detection feature
  - name: Driving Events
    description: Resources to configure the driving events feature
  - name: Parking Events
    description: Resources to configure the parking events feature
  - name: Auto Immobilizer Control
    description: Resources to configure the auto immobilizer control feature
  - name: Maintenance Data
    description: Resources to configure the maintenance data feature
  - name: CloudBoxx settings
    description: |
      Resources to manage individual values of the CloudBoxx configuration.
      These individual values are referred to as CloudBoxx settings.
  - name: OBD Alarm
    description: Resources to configure the obd alarm
paths:
  /vehicles/{id}/telematics-unit/feature-configuration:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Feature configuration
      summary: Get feature configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the feature configuration for the vehicle or more specifically for the installed telematics unit.
        The feature configuration contains information on all configured features.
      operationId: get-feature-configuration
      responses:
        '200':
          $ref: '#/components/responses/featureConfigurationResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/tracking:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Tracking
      summary: Get tracking configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the tracking configuration for the given vehicle or more specifically for the installed telematics unit.
      operationId: get-tracking-configuration
      responses:
        '200':
          $ref: '#/components/responses/getResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicle404TrackingResponse'
    put:
      tags:
        - Tracking
      summary: Set tracking configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Configures the tracking feature for the given vehicle.
        This can be used to activate tracking or change the configuration subsequently.
      operationId: put-tracking-configuration
      requestBody:
        $ref: '#/components/requestBodies/put'
      responses:
        '200':
          $ref: '#/components/responses/putResponse'
        '400':
          $ref: '#/components/responses/featureTrackingValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/trackingConflictErrorResponsePut'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Tracking
      summary: Disable tracking
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the tracking feature for the given vehicle.
        Returns a success response if the tracking feature was disabled already.
      operationId: disable-tracking
      responses:
        '204':
          description: |
            The tracking feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/trackingConflictErrorResponseDelete'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/damage-detection:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Damage Detection
      summary: Get damage detection configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the damage detection configuration for the given vehicle or more specifically for the installed telematics unit.

        The response property `activation_status` contains the status of the most recent (de)activation job.

        Note that an appropriate 404 Not Found response is returned when the feature is disabled.
      operationId: get-damage-detection-configuration
      responses:
        '200':
          $ref: '#/components/responses/getDamageDetectionConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicleDamageDetection404Response'
    put:
      tags:
        - Damage Detection
      summary: Set damage detection configuration
      description: |
        Configures the damage detection feature for the given vehicle.
        This can be used to activate damage detection.

        Note that activating the damage detection via this endpoint creates an asynchronous job that starts after the request completes.
        The job can only progress while the CloudBoxx is online.
        If the CloudBoxx is not online, the job will wait until it is.

        You can inspect the current state of the activation job at any time using the associated [GET endpoint](#get-damage-detection-configuration).
        The `activation_status` shows whether the job is waiting for the CloudBoxx to come online, running, or completed.

        Once damage detection is active, changing the configuration does *not* require such a job.
        These changes are done by the time this request is completed.
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      operationId: put-damage-detection-configuration
      x-supported-cloudboxx-models: 4G, 1020
      x-minimum-cloudboxx-firmware-version: 2.16.0
      requestBody:
        $ref: '#/components/requestBodies/putDamageDetectionConfiguration'
      responses:
        '200':
          $ref: '#/components/responses/putDamageDetectionConfigurationResponse'
        '400':
          $ref: '#/components/responses/featureDamageDetectionValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putDamageDetectionConflictResponses'
    delete:
      tags:
        - Damage Detection
      summary: Disable damage detection
      description: |
        Disables the damage detection feature for the given vehicle.

        Note that deactivating the damage detection via this endpoint creates an asynchronous job that starts after the request completes.
        The job can only progress while the CloudBoxx is online.
        If the CloudBoxx is not online, the job will wait until it is.

        If there is a running activation job, it will be canceled by this request.

        You can inspect the current state of the deactivation job at any time using the associated [GET endpoint](#get-damage-detection-configuration).
        The `activation_status` shows whether the job is waiting for the CloudBoxx to come online, running, or completed.
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      operationId: disable-damage-detection
      responses:
        '202':
          $ref: '#/components/responses/deleteDamageDetectionPendingResponse'
        '204':
          description: Damage detection already disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/deleteDamageDetectionConflictResponses'
  /vehicles/{id}/telematics-unit/feature-configuration/driving-events:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Driving Events
      summary: Get driving events configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the driving events configuration for the given vehicle or more specifically for the installed telematics unit.
      operationId: get-driving-events-configuration
      responses:
        '200':
          $ref: '#/components/responses/getDrivingEventsConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicle404DrivingEventsResponse'
    put:
      tags:
        - Driving Events
      summary: Set driving events configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Configures the driving events feature for the given vehicle.
        This can be used to activate driving events or change the configuration subsequently.

        At least one of the properties for a certain event type (`crash_detection`, `heavy_braking_detection` or `harsh_cornering_detection`) must be included in the request.
        If a property for one of these event types is not included in the request the corresponding events will be disabled.
        To disable all driving events for a vehicle, use the DELETE method instead.

        For each event type, any missing properties like `minimum_acceleration_in_mg` will be automatically set to their default values.
        The default values for all detection mechanisms are merely suggestions and usually require a testing phase to find the values that best suit your requirements.
        If events are detected although no real event occurred at the vehicle, consider adjusting the sensitivity of the detection mechanisms by increasing the threshold values.
      operationId: put-driving-events-configuration
      x-supported-cloudboxx-models: 4G, 1020, MINI
      x-minimum-cloudboxx-firmware-version: 2.12.0
      requestBody:
        $ref: '#/components/requestBodies/putDrivingEventsConfiguration'
      responses:
        '200':
          $ref: '#/components/responses/putDrivingEventsConfigurationResponse'
        '400':
          $ref: '#/components/responses/featureDrivingEventsValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putDrivingEventsConfigurationConflictResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Driving Events
      summary: Disable driving events
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the driving events feature for the given vehicle.
        Returns a success response if the driving events feature was disabled already.
      operationId: disable-driving-events
      responses:
        '204':
          description: |
            The driving events feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/parking-events:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Parking Events
      summary: Get parking events configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the parking events configuration for the given vehicle or more specifically for the installed telematics unit.
      operationId: get-parking-events-configuration
      responses:
        '200':
          $ref: '#/components/responses/getParkingEventsConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicle404ParkingEventsResponse'
    put:
      tags:
        - Parking Events
      summary: Set parking events configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Configures the parking events feature for the given vehicle.
        This can be used to activate parking events or change the configuration subsequently.

        At least one of the properties for a certain event type (`shock_detection`, `motion_detection` or `tilt_detection`) must be included in the request.
        If a property for one of these event types is not included in the request the corresponding events will be disabled.
        To disable all parking events for a vehicle, use the DELETE method instead.

        For each event type, any missing properties like `minimum_angle_in_degrees` will be automatically set to their default values.
        The default values for all detection mechanisms are merely suggestions and usually require a testing phase to find the values that best suit your requirements.
        If events are detected although no real event occurred at the vehicle, consider adjusting the sensitivity of the detection mechanisms by increasing the threshold values.
      operationId: put-parking-events-configuration
      x-supported-cloudboxx-models: 4G, 1020, MINI
      x-minimum-cloudboxx-firmware-version: 2.8.0
      requestBody:
        $ref: '#/components/requestBodies/putParkingEventsConfiguration'
      responses:
        '200':
          $ref: '#/components/responses/putParkingEventsConfigurationResponse'
        '400':
          $ref: '#/components/responses/featureParkingEventsValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/featureParkingEventsConflictErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Parking Events
      summary: Disable parking events
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the parking events feature for the given vehicle.
        Returns a success response if the parking events feature was disabled already.
      operationId: disable-parking-events
      responses:
        '204':
          description: |
            The parking events feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          description: Request cannot be processed. See examples for more details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                Vehicle setup not succeeded:
                  $ref: '#/components/examples/problemsInSetup'
                Operation cannot be performed due anomaly detection is activated:
                  $ref: '#/components/examples/problemsIncompatibleAnomalyDetection'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/tilt-calibration:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    put:
      tags:
        - Parking Events
      summary: Calibrate tilt
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Tells the telematics unit that the vehicle is currently level and not tilted.
        The current tilt of the vehicle will be used as a baseline for future tilt angle measurements.

        For best results, ensure that the vehicle is on level ground while using this endpoint.
      operationId: calibrate-tilt
      x-supported-cloudboxx-models: 4G, 1020, MINI
      x-minimum-cloudboxx-firmware-version: 2.8.0
      responses:
        '204':
          description: |
            The tilt was calibrated.
        '400':
          $ref: '#/components/responses/tiltCalibrationValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/tiltCalibrationConflictErrorResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/smoke-detection:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Smoke Detection
      summary: Get smoke detection configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the smoke detection configuration for the given vehicle or more specifically for the installed telematics unit.
      operationId: get-smoke-detection-configuration
      responses:
        '200':
          $ref: '#/components/responses/getSmokeDetectionConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicle404SmokeDetectionResponse'
    put:
      tags:
        - Smoke Detection
      summary: Set smoke detection configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Enable smoke detection. Currently, no additional configuration values are available.
      operationId: activate-smoke-detection
      x-supported-cloudboxx-models: 4G, 1020
      x-minimum-cloudboxx-firmware-version: 2.21.0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: Empty object
              type: object
      responses:
        '200':
          description: The smoke detection is active for this vehicle.
          content:
            application/json:
              schema:
                description: Empty object
                type: object
        '400':
          $ref: '#/components/responses/featureSmokeDetectionValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putSmokeDetectionConflictResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Smoke Detection
      summary: Disable smoke detection
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the smoke detection feature for the given vehicle.
        Returns a success response if the smoke detection feature was disabled already.
      operationId: disable-smoke-detection
      responses:
        '204':
          description: |
            The smoke detection feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/cloudboxx-configuration/obd-alarm:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    put:
      tags:
        - OBD Alarm
      summary: Set OBD alarm configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Enable OBD alarm. Currently, no additional configuration values are available.
      operationId: activate-obd-alarm
      x-supported-cloudboxx-models: 4G, 1020
      x-minimum-cloudboxx-firmware-version: 2.24.0
      x-supported-installation-variant: OBD2_INSTALLATION
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: Empty object
              type: object
      responses:
        '200':
          description: The OBD alarm is active for this vehicle.
          content:
            application/json:
              schema:
                description: Empty object
                type: object
        '400':
          $ref: '#/components/responses/featureObdAlarmValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putObdAlarmConflictResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - OBD Alarm
      summary: Disable OBD alarm
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the OBD alarm for the given vehicle.
        Returns a success response if the OBD alarm was already disabled.
      operationId: disable-obd-alarm
      responses:
        '204':
          description: |
            The OBD alarm has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/speeding-detection:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Speeding Detection
      summary: Get speeding detection configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the speeding detection configuration for the given vehicle.
      operationId: get-speeding-detection-configuration
      responses:
        '200':
          $ref: '#/components/responses/getSpeedingDetectionConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicleSpeedingDetection404Response'
    put:
      tags:
        - Speeding Detection
      summary: Set speeding detection configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Enable speeding detection. Currently, no additional configuration values are available.
      operationId: activate-speeding-detection
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: Empty object
              type: object
      responses:
        '200':
          $ref: '#/components/responses/getSpeedingDetectionConfigurationResponse'
        '400':
          $ref: '#/components/responses/featureSpeedingDetectionValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putSpeedingDetectionConflictResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Speeding Detection
      summary: Disable speeding detection
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the speeding detection feature for the given vehicle.
        Returns a success response if the speeding detection feature was disabled already.
      operationId: disable-speeding-detection
      responses:
        '204':
          description: |
            The speeding detection feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/anomaly-detection:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Anomaly Detection
      summary: Get anomaly detection configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the anomaly detection configuration for the given vehicle.
      operationId: get-anomaly-detection-configuration
      responses:
        '200':
          $ref: '#/components/responses/getAnomalyDetectionConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicleAnomalyDetection404Response'
    put:
      tags:
        - Anomaly Detection
      summary: Set anomaly detection configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Enable anomaly detection. Currently, no additional configuration values are available.
      operationId: activate-anomaly-detection
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: Empty object
              type: object
      responses:
        '200':
          $ref: '#/components/responses/getAnomalyDetectionConfigurationResponse'
        '400':
          $ref: '#/components/responses/featureAnomalyDetectionValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putAnomalyDetectionConflictResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Anomaly Detection
      summary: Disable anomaly detection
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the anomaly detection feature for the given vehicle.
        Returns a success response if the anomaly detection feature was disabled already.
      operationId: disable-anomaly-detection
      responses:
        '204':
          description: |
            The anomaly detection feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/auto-immobilizer-control:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Auto Immobilizer Control
      summary: Get auto immobilizer control configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the auto immobilizer control configuration for the given vehicle or more specifically for the installed telematics unit.

        ### Lock conditions
        The CloudBoxx detects when the immobilizer is to be locked using the following conditions:

        * At least one door is opened or closed.
          Activated by setting `use_doors_status` to true.
        * The Bluetooth Low Energy (BLE) signal strength from a connected phone falls below the threshold defined by `ble_signal_strength_threshold_in_dbm`.
          Activated by setting `use_ble_signal_strength` to true.
        * The BLE connection to the phone is lost completely.
          Activated by setting `use_ble_connection` to true.

        Note: `use_ble_signal_strength` may only be true if `use_ble_connection` is also true.

        ### Behavior
        Auto immobilizer control is inactive as long as the immobilizer is locked.

        Unlocking the immobilizer puts the auto immobilizer control into a "pre-ride start" state.
        In this state, the immobilizer will be locked automatically if either of the enabled Bluetooth-based conditions remain active for at least `pre_ride_start_lock_delay_in_seconds`.
        The status of the doors is not taken into account in this state.

        The state changes when the ignition is turned on.
        As long as the ignition is turned on, the immobilizer will not be locked.

        When the ignition is turned off, the auto immobilizer control enters a "ride pause" state.
        In this state, the immobilizer will be locked automatically if a door is opened or closed and either of the enabled Bluetooth-based conditions remain active for at least `ride_pause_lock_delay_in_seconds`.
        When the conditions cease or the ignition is turned on before this time is reached, the timer resets and immobilizer remains unlocked.

        For auto immobilizer control to re-enter "pre-ride start" state again, the immobilizer must be locked (either manually or automatically) and then unlocked.

        ### Requirements
        For the auto immobilizer control to work, the vehicle needs the vehicle state capability `IGNITION` so it can read the ignition state.
        Additionally the vehicle must be able to lock the immobilizer.
        So make sure that the immobilizer is wired to the CloudBoxx correctly.

        The lock condition `use_doors_status` can only be enabled when the vehicle has the vehicle state capability `DOORS_STATUS`.
        To use one of the Bluetooth-related lock conditions, the CloudBoxx needs a Bluetooth connection to a mobile device.
        This is usually the end customers device that runs your mobile app.
      operationId: get-auto-immobilizer-control-configuration
      responses:
        '200':
          $ref: '#/components/responses/getAutoImmobilizerControlConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicle404AutoImmobilizerControlResponse'
    put:
      tags:
        - Auto Immobilizer Control
      summary: Set auto immobilizer control configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Configures the auto immobilizer control feature for the given vehicle.
        This endpoint can be used to activate auto immobilizer control or change the configuration subsequently.

        ### Lock conditions
        The CloudBoxx detects when the immobilizer is to be locked using the following conditions:

        * At least one door is opened or closed.
          Activated by setting `use_doors_status` to true.
        * The Bluetooth Low Energy (BLE) signal strength from a connected phone falls below the threshold defined by `ble_signal_strength_threshold_in_dbm`.
          Activated by setting `use_ble_signal_strength` to true.
        * The BLE connection to the phone is lost completely.
          Activated by setting `use_ble_connection` to true.

        Note: `use_ble_signal_strength` may only be true if `use_ble_connection` is also true.

        ### Behavior
        Auto immobilizer control is inactive as long as the immobilizer is locked.

        Unlocking the immobilizer puts the auto immobilizer control into a "pre-ride start" state.
        In this state, the immobilizer will be locked automatically if either of the enabled Bluetooth-based conditions remain active for at least `pre_ride_start_lock_delay_in_seconds`.
        The status of the doors is not taken into account in this state.

        The state changes when the ignition is turned on.
        As long as the ignition is turned on, the immobilizer will not be locked.

        When the ignition is turned off, the auto immobilizer control enters a "ride pause" state.
        In this state, the immobilizer will be locked automatically if a door is opened or closed and either of the enabled Bluetooth-based conditions remain active for at least `ride_pause_lock_delay_in_seconds`.
        When the conditions cease or the ignition is turned on before this time is reached, the timer resets and immobilizer remains unlocked.

        For auto immobilizer control to re-enter "pre-ride start" state again, the immobilizer must be locked (either manually or automatically) and then unlocked.

        ### Requirements
        For the auto immobilizer control to work, the vehicle needs the vehicle state capability `IGNITION` so it can read the ignition state.
        Additionally the vehicle must be able to lock the immobilizer.
        So make sure that the immobilizer is wired to the CloudBoxx correctly.

        The lock condition `use_doors_status` can only be enabled when the vehicle has the vehicle state capability `DOORS_STATUS`.
        To use one of the Bluetooth-related lock conditions, the CloudBoxx needs a Bluetooth connection to a mobile device.
        This is usually the end customers device that runs your mobile app.
      operationId: activate-auto-immobilizer-control
      x-supported-cloudboxx-models: 4G, 1020, MINI
      x-minimum-cloudboxx-firmware-version: 2.17.0
      requestBody:
        $ref: '#/components/requestBodies/putAutoImmobilizerControlConfiguration'
      responses:
        '200':
          $ref: '#/components/responses/putAutoImmobilizerControlConfigurationResponse'
        '400':
          $ref: '#/components/responses/featureAutoImmobilizerControlValidationErrorResponse'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putAutoImmobilizerControlConflictResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Auto Immobilizer Control
      summary: Disable auto immobilizer control
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the auto immobilizer control feature for the given vehicle.
        Returns a success response if the auto immobilizer control feature was disabled already.
      operationId: disable-auto-immobilizer-control
      responses:
        '204':
          description: |
            The auto immobilizer control feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /vehicles/{id}/telematics-unit/feature-configuration/maintenance-data:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - Maintenance Data
      summary: Get maintenance data configuration
      x-invers-permission: vehicles.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Returns the maintenance data configuration for the given vehicle.
      operationId: get-maintenance-data-configuration
      responses:
        '200':
          $ref: '#/components/responses/getMaintenanceDataConfigurationResponse'
        '404':
          $ref: '#/components/responses/featureOrVehicle404MaintenanceDataResponse'
    put:
      tags:
        - Maintenance Data
      summary: Set maintenance data configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Enables the maintenance data feature for the specified vehicle. This adds all available maintenance data capabilities for this vehicle to its vehicle state capability set.
        As a result, API responses containing vehicle states will be enriched with maintenance data information. Additionally, new or changed maintenance-related events may be triggered when relevant data changes.
      operationId: put-maintenance-data-configuration
      x-supported-cloudboxx-models: 4G, 1020
      x-minimum-cloudboxx-firmware-version: 2.23.0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: Empty object
              type: object
      responses:
        '200':
          $ref: '#/components/responses/getMaintenanceDataConfigurationResponse'
        '400':
          $ref: '#/components/responses/putMaintenanceDataValidationResponses'
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/putMaintenanceDataConflictResponses'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    delete:
      tags:
        - Maintenance Data
      summary: Disable maintenance data
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Disables the maintenance data feature for the given vehicle.
        Returns a success response if the maintenance data feature was disabled already.
      operationId: disable-maintenance-data-events
      responses:
        '204':
          description: |
            The maintenance data feature has been disabled.
        '404':
          $ref: '#/components/responses/vehicleNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/vehicleInSetupErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
  /configure-vehicle-telematics-unit-bulk:
    post:
      tags:
        - Feature configuration (bulk)
      summary: Apply feature- and telematics unit related configuration in bulk
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Creates a new bulk configuration that applies a set of configuration parameters
        to a potentially large number of vehicles, identified by the supplied vehicle IDs.

        The request is processed with a time delay and can be requested by `id` until it is completed.
      operationId: create-bulk-configuration
      requestBody:
        $ref: '#/components/requestBodies/postBulkConfiguration'
      responses:
        '207':
          $ref: '#/components/responses/bulkConfigurationCreateSuccessResponse'
        '400':
          $ref: '#/components/responses/validationErrorResponse'
    get:
      tags:
        - Feature configuration (bulk)
      summary: Get a list of bulk configurations
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Get a list of bulk configurations along with brief summaries of their current status
      operationId: read-bulk-configurations
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/status'
        - $ref: '#/components/parameters/succeeded_count'
      responses:
        '200':
          $ref: '#/components/responses/bulkConfigurationsReadSuccessResponse'
        '400':
          $ref: '#/components/responses/validationErrorResponse'
  /configure-vehicle-telematics-unit-bulk/{id}:
    get:
      tags:
        - Feature configuration (bulk)
      summary: Get a bulk configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Get a single bulk configuration along with detailed information about its current status
      operationId: read-bulk-configuration
      parameters:
        - name: id
          description: Unique ID of the bulk configuration.
          required: true
          in: path
          schema:
            $ref: '#/components/schemas/bulkConfigurationId'
      responses:
        '200':
          $ref: '#/components/responses/bulkConfigurationReadSuccessResponse'
        '400':
          $ref: '#/components/responses/validationErrorResponse'
        '404':
          $ref: '#/components/responses/bulkConfigurationNotFoundErrorResponse'
  /configure-vehicle-telematics-unit-bulk/{id}/cancellation:
    put:
      tags:
        - Feature configuration (bulk)
      summary: Cancel execution of a bulk configuration
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Cancel execution of a bulk configuration
      operationId: cancel-bulk-configuration
      parameters:
        - name: id
          description: Unique ID of the bulk configuration.
          required: true
          in: path
          schema:
            $ref: '#/components/schemas/bulkConfigurationId'
      responses:
        '204':
          description: |
            The bulk configuration has been canceled
        '404':
          $ref: '#/components/responses/bulkConfigurationNotFoundErrorResponse'
  /vehicles/{id}/cloudboxx-settings:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      tags:
        - CloudBoxx settings
      summary: Get settings of a vehicle
      x-invers-permission: vehicle-config.ro
      security:
        - OAuth2:
            - VEHICLES_READ
      description: |
        Get the current settings of the CloudBoxx in the vehicle.
      operationId: get-cloudboxx-settings
      responses:
        '200':
          $ref: '#/components/responses/getCloudboxxSettingsResponse'
        '404':
          $ref: '#/components/responses/cloudboxxSettings404ErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
    patch:
      tags:
        - CloudBoxx settings
      summary: Update settings for a vehicle
      x-invers-permission: vehicle-config
      security:
        - OAuth2:
            - VEHICLES_WRITE
      description: |
        Update the settings for the CloudBoxx in the vehicle.
      operationId: patch-cloudboxx-settings
      requestBody:
        $ref: '#/components/requestBodies/patchCloudboxxSettingsRequest'
      responses:
        '200':
          $ref: '#/components/responses/patchCloudboxxSettingsResponse'
        '400':
          $ref: '#/components/responses/cloudboxxSettingsValidationErrorResponse'
        '404':
          $ref: '#/components/responses/cloudboxxSettings404ErrorResponse'
        '409':
          $ref: '#/components/responses/cloudboxxSettings409ErrorResponse'
        '504':
          $ref: '#/components/responses/noConnectionToVehicleErrorResponse'
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /auth/oauth/token
          scopes:
            VEHICLES_WRITE: Write access to vehicles
            VEHICLES_READ: Read access to vehicles
        authorizationCode:
          authorizationUrl: /auth/oauth/authorize
          tokenUrl: /auth/oauth/token
          scopes:
            VEHICLES_WRITE: Write access to vehicles
            VEHICLES_READ: Read access to vehicles
  parameters:
    vehicleId:
      name: id
      description: Unique ID of the vehicle.
      required: true
      in: path
      schema:
        type: string
        maxLength: 12
        example: JQ7RP
    limit:
      name: limit
      description: Number of items to return at most.
      in: query
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
        default: 20
        example: 20
    cursor:
      name: cursor
      description: The cursor object used to navigate through the results.
      in: query
      schema:
        type: string
        example: eyJ2IjpbIjIwMjAtMTEtMTZUMDk6NTc6MjUuNzY2MDAwMFoiLCJaOTVSUyJdLCJkIjpmYWxzZSwicSI6eyJsIjozfX0=
    status:
      name: status
      description: The status of the bulk configuration.
      in: query
      schema:
        type: string
        example: RUNNING
        x-extensible-enum:
          - RUNNING
          - FINISHED
          - CANCELED
    succeeded_count:
      name: succeeded_count
      description: The number of vehicles that have been successfully configured as requested.
      in: query
      schema:
        type: string
        example: SOME
        x-extensible-enum:
          - NONE
          - SOME
          - ALL
  schemas:
    trackingResponseSchema:
      $ref: '#/components/schemas/getResponse'
    trackingConfigurationRequestSchema:
      $ref: '#/components/schemas/putRequest'
    putDamageDetectionResponseSchema:
      $ref: '#/components/schemas/schemas-putResponse'
    deleteDamageDetectionResponseSchema:
      $ref: '#/components/schemas/deleteResponse'
    damageDetectionConfigurationRequestSchema:
      $ref: '#/components/schemas/schemas-putRequest'
    getDamageDetectionResponseSchema:
      $ref: '#/components/schemas/schemas-getResponse'
    getDrivingEventsResponseSchema:
      $ref: '#/components/schemas/DrivingEvents_schemas-getResponse'
    getMaintenanceDataResponseSchema:
      $ref: '#/components/schemas/schemas-response'
    drivingEventsConfigurationRequestSchema:
      $ref: '#/components/schemas/DrivingEvents_schemas-putRequest'
    putDrivingEventsConfigurationResponseSchema:
      $ref: '#/components/schemas/DrivingEvents_schemas-putResponse'
    smokeDetectionResponseSchema:
      $ref: '#/components/schemas/response'
    getSpeedingDetectionResponseSchema:
      $ref: '#/components/schemas/SpeedingDetection_schemas-response'
    getAnomalyDetectionResponseSchema:
      $ref: '#/components/schemas/AnomalyDetection_schemas-response'
    getParkingEventsResponseSchema:
      $ref: '#/components/schemas/ParkingEvents_schemas-getResponse'
    putParkingEventsConfigurationResponseSchema:
      $ref: '#/components/schemas/ParkingEvents_schemas-putResponse'
    parkingEventsConfigurationRequestSchema:
      $ref: '#/components/schemas/ParkingEvents_schemas-putRequest'
    autoImmobilizerControlConfigurationRequestSchema:
      $ref: '#/components/schemas/AutoImmobilizerControl_schemas-putRequest'
    putAutoImmobilizerControlConfigurationResponseSchema:
      $ref: '#/components/schemas/AutoImmobilizerControl_schemas-putResponse'
    getAutoImmobilizerControlResponse:
      $ref: '#/components/schemas/AutoImmobilizerControl_schemas-getResponse'
    cloudboxxSettingsResponseSchema:
      description: |
        The CloudBoxx settings describe individual values of the CloudBoxx configuration.
      type: object
      properties:
        beeper_enabled:
          type: boolean
          description: |
            Whether the beeper on the CloudBoxx is enabled.
            If enabled, the CloudBoxx makes a beeping sound when, e.g. a connection via Bluetooth is established.
          example: true
        dead_reckoning_position_enabled:
          type: boolean
          description: |
            Whether the CloudBoxx can use dead reckoning to improve the position quality in areas with bad or no GNSS signal.
          example: true
        current_mileage_in_kilometers:
          type: number
          format: double
          minimum: 0
          maximum: 4294967
          description: |
            Specifies the current mileage of the vehicle.
            For some vehicle models, the telematics unit cannot obtain the current mileage directly.
            In that case, the mileage has to be supplied using this parameter for the setup process.
          example: 42.13
        mileage_source:
          description: |
            Selects the source from which to derive the driven mileage information. This mainly depends on the wiring of the
            CloudBoxx inside the vehicle.

            * `COMBINED` - is only available since firmware version 2.16.0.
            * `OBD2` - is only available since firmware version 2.17.0.
          example: CAN_MILEAGE
          type: string
          x-extensible-enum:
            - VSS
            - GPS_POS
            - GPS_SPEED
            - CAN_MILEAGE
            - CAN_SPEED
            - COMBINED
            - OBD2
        ignition_source:
          description: |
            From where to detect the ignition-status. This mainly depends on the wiring of the CloudBoxx
            inside the vehicle.

            * `OBD2` - is only available since firmware version 2.17.0.
          example: KL15
          readOnly: false
          type: string
          x-extensible-enum:
            - KL15
            - CAN
            - ENGINE_RUN
            - OBD2
        telematics_unit_supply_voltage_alarm_thresholds:
          description: |
            Thresholds used to configure when TelematicsUnitSupplyVoltageThresholdCrossed events are produced.

            Generation of these events is based on two states of the supply voltage: normal and abnormally low.
            When the state is normal and the voltage drops below the `alarm_threshold_in_volts`, an event is produced to indicate that the state is now "abnormally low".
            The next state change occurs only once the voltage rises above the `recover_threshold_in_volts`.
            Once that happens, an event is produced to indicate that the state is back to "normal".

            The `recover_threshold_in_volts` must be between `alarm_threshold_in_volts + 0.5` and `alarm_threshold_in_volts + 3.0` (inclusive).

            Note that the allowed ranges for both thresholds change depending on the telematics unit model.
          anyOf:
            - $ref: '#/components/schemas/telematicsUnitSupplyVoltageAlarmThresholds3G'
            - $ref: '#/components/schemas/telematicsUnitSupplyVoltageAlarmThresholdsMini'
            - $ref: '#/components/schemas/telematicsUnitSupplyVoltageAlarmThresholds4G'
        fuel_level_smoothing:
          type: boolean
          nullable: false
          description: |
            Enable or disable the smoothing of fuel level changes. Can be used if consecutive fuel level info
            fluctuates too much due to high sensor sensitivity and fuel moving around in the tank while driving.
          example: true
        fuel_level_alarm_thresholds:
          description: |
            Thresholds in percent are used to configure when "Fuel Level Alarm/Recover" events are triggered.
            If disabled, the threshold values are ignored.
          oneOf:
            - $ref: '#/components/schemas/fuelLevelAlarmThresholdsEnabled'
            - $ref: '#/components/schemas/fuelLevelAlarmThresholdsDisabled'
    cloudboxxSettingsRequestSchema:
      allOf:
        - $ref: '#/components/schemas/cloudboxxSettingsResponseSchema'
        - properties:
            telematics_unit_supply_voltage_alarm_thresholds:
              required:
                - alarm_threshold_in_volts
                - recover_threshold_in_volts
    cloudboxxConfigurationRequestSchema:
      type: object
      description: |
        The configurations to be applied to each vehicle included in the bulk configuration.

        If no configuration is specified, i.e. the corresponding property under cloudboxx_configuration isn't included, the specific configuration will not be changed.
      properties:
        obd_alarm:
          type: object
          description: Configuration for OBD alarm related settings.
          properties:
            enabled:
              type: boolean
              description: Whether to enable obd alarm.
              default: true
              example: true
    Problem:
      type: object
      required:
        - type
        - title
        - status
        - detail
      properties:
        type:
          type: string
          format: uri-reference
          description: |
            A relative URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferencable and point to a human-readable documentation nor globally unique for the problem type.
          default: about:blank
          example: /problem/connection-error
        type_documentation:
          type: string
          format: url
          description: |
            An URL that points to a human-readable documentation of the problem type. Some explanations of the problem type together with possible solutions can be found there.  Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
          example: https://developers.invers.com/problems/invalid-credentials/
        title:
          type: string
          description: |
            A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
          example: Service Unavailable
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence of the problem.
          minimum: 100
          maximum: 600
          exclusiveMaximum: true
          example: 503
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
          example: Connection to database timed out
        flow_id:
          type: string
          description: |
            The id of the flow that caused this error.  For more information visit [https://developers.invers.com/integration-guide/api-basics/#flow-id](https://developers.invers.com/integration-guide/api-basics/#flow-id).
    nextPrevCursorPagedResponse:
      description: List response which is returned for paged requests.
      type: object
      required:
        - cursors
      properties:
        cursors:
          description: |
            Contains the relevant cursors for the returned page -
            prev and next are omitted if they are not applicable.

            Usually the "next" cursor is used repeatedly to iterate the result list.
          type: object
          required:
            - self
          properties:
            self:
              description: |
                Use as `cursor` query parameter in order to retrieve the same batch of results
                as currently returned (according to the limit parameter previously provided).
              type: string
              example: eyJ2IjpbIjIwMjAtMTEtMTZUMDk6NTc6MjUuNDUwMDAwMFoiLCJOWUNOVSJdLCJkIjpmYWxzZSwicSI6eyJsIjozfX0=
            prev:
              description: |
                Use as `cursor` query parameter in order to retrieve the previous batch of results
                (according to the limit parameter previously provided).
              type: string
              example: eyJ2IjpbIjIwMjAtMTEtMTZUMDk6NTc6MjUuNTYxMDAwMFoiLCJOVEY1VCJdLCJkIjp0cnVlLCJxIjp7ImwiOjN9fQ==
            next:
              description: |
                Use as `cursor` query parameter in order to retrieve the next batch of results
                (according to the limit parameter previously provided).
              type: string
              example: eyJ2IjpbIjIwMjAtMTEtMTZUMDk6NTc6MjUuNzY2MDAwMFoiLCJaOTVSUyJdLCJkIjpmYWxzZSwicSI6eyJsIjozfX0=
    bulkConfigurationId:
      type: string
      maxLength: 40
      description: Unique ID of the bulk configuration.
      example: 01HKA9VJ2Y51DVGDKQVFX8TJGY
    bulkFeatureConfigurationPartCommon:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
          default: true
          description: |
            Whether to enable this feature configuration.
            If set to false, the corresponding feature will be disabled for each vehicle
            and any further configuration parameters for this feature will not be applied.
            If omitted or set to true, the feature will be configured as specified by the remaining parameters.
    bulkFeatureConfiguration:
      description: |
        The feature configurations to be applied to each vehicle included in the bulk configuration.

        If no configuration for a specific feature is specified,
        i.e. the corresponding property under `feature_configuration` isn't included,
        the configuration for that feature will not be changed.
      type: object
      properties:
        tracking:
          allOf:
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
            - $ref: '#/components/schemas/putRequest'
        damage_detection:
          allOf:
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
            - $ref: '#/components/schemas/schemas-putRequest'
        driving_events:
          allOf:
            - type: object
              properties:
                enabled:
                  type: boolean
                  example: true
                  default: true
                  description: |
                    If set to false, the corresponding feature driving events will be disabled for each vehicle
                    and any further configuration parameters for this feature will not be applied.

                    If set to true, the feature will be configured as specified by the remaining parameters.
                    At least one of the properties for a certain event type  (`crash_detection`,
                    `heavy_braking_detection` or `harsh_cornering_detection`) must be included in the request.
                    If a property for one of these event types is not included in the request the corresponding events
                    will be disabled.
            - $ref: '#/components/schemas/DrivingEvents_schemas-putRequest'
        parking_events:
          allOf:
            - type: object
              properties:
                enabled:
                  type: boolean
                  example: true
                  default: true
                  description: |
                    If set to false, the corresponding feature parking events will be disabled for each vehicle
                    and any further configuration parameters for this feature will not be applied.

                    If set to true, the feature will be configured as specified by the remaining parameters.
                    At least one of the properties for a certain event type  (`shock_detection`,
                    `motion_detection` or `tilt_detection`) must be included in the request.
                    If a property for one of these event types is not included in the request the corresponding events
                    will be disabled.
            - $ref: '#/components/schemas/ParkingEvents_schemas-putRequest'
        smoke_detection:
          allOf:
            - description: Parameters for configuring the "smoke-detection" feature
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
        auto_immobilizer_control:
          allOf:
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
            - $ref: '#/components/schemas/AutoImmobilizerControl_schemas-putRequest'
        anomaly_detection:
          allOf:
            - description: Parameters for configuring the "anomaly-detection" feature
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
        speeding_detection:
          allOf:
            - description: Parameters for configuring the "speeding-detection" feature
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
        maintenance_data:
          allOf:
            - description: Parameters for configuring the "maintenance-data" feature
            - $ref: '#/components/schemas/bulkFeatureConfigurationPartCommon'
    bulkConfigurationsResponse:
      allOf:
        - $ref: '#/components/schemas/nextPrevCursorPagedResponse'
        - type: object
          properties:
            items:
              description: |
                The list of bulk configurations matching the provided parameters.
              type: array
              minItems: 1
              maxItems: 100
              items:
                type: object
                required:
                  - id
                  - status
                  - created_at
                  - total_count
                  - processed_count
                  - succeeded_count
                  - failed_count
                properties:
                  id:
                    $ref: '#/components/schemas/bulkConfigurationId'
                  status:
                    type: string
                    example: RUNNING
                    description: The status of the bulk configuration
                    x-extensible-enum:
                      - RUNNING
                      - FINISHED
                      - CANCELED
                  created_at:
                    description: The timestamp of the bulk configuration's creation
                    type: string
                    format: date-time
                    example: '2024-01-08T10:29:00Z'
                  finished_at:
                    description: The timestamp of the bulk configuration's completion
                    type: string
                    format: date-time
                    example: '2024-01-08T10:29:00Z'
                  total_count:
                    description: The total number of vehicles included in this bulk configuration
                    type: integer
                    format: int32
                    minimum: 1
                    maximum: 10000
                    example: 263
                  processed_count:
                    description: The number of vehicles included in this bulk configuration that have reached a final state
                    type: integer
                    format: int32
                    minimum: 0
                    maximum: 10000
                    example: 142
                  succeeded_count:
                    description: The number of vehicles included in this bulk configuration that have reached the SUCCEEDED state
                    type: integer
                    format: int32
                    minimum: 0
                    maximum: 10000
                    example: 122
                  failed_count:
                    description: The number of vehicles included in this bulk configuration that have reached the FAILED or PARTIALLY_SUCCEEDED state
                    type: integer
                    format: int32
                    minimum: 0
                    maximum: 10000
                    example: 20
                  feature_configuration:
                    $ref: '#/components/schemas/bulkFeatureConfiguration'
                  cloudboxx_configuration:
                    $ref: '#/components/schemas/cloudboxxConfigurationRequestSchema'
                  cloudboxx_settings:
                    $ref: '#/components/schemas/cloudboxxSettingsResponseSchema'
    vehicleId:
      type: string
      maxLength: 12
      description: Unique ID of the vehicle.
      example: JQ7RP
    minimalBulkConfigurationItem:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/vehicleId'
    postBulkConfigurationRequestSchema:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 10000
          items:
            $ref: '#/components/schemas/minimalBulkConfigurationItem'
        feature_configuration:
          $ref: '#/components/schemas/bulkFeatureConfiguration'
        cloudboxx_configuration:
          $ref: '#/components/schemas/cloudboxxConfigurationRequestSchema'
        cloudboxx_settings:
          allOf:
            - description: |
                The CloudBoxx settings to be applied to each vehicle included in the request.
                If no value for a particular setting, i.e. the corresponding property under `cloudboxx_settings` is not included, the value of the setting is not changed.
            - $ref: '#/components/schemas/cloudboxxSettingsRequestSchema'
    bulkConfigurationItem:
      description: |
        A configuration item, i.e. a vehicle along with its current status in regard to the bulk configuration.
      type: object
      properties:
        id:
          $ref: '#/components/schemas/vehicleId'
        status:
          type: string
          example: PENDING
          description: |
            The status of the configuration for an individual vehicle
            - `PENDING` - the configuration has not yet been started
            - `RUNNING` - the configuration is currently in progress
            - `SUCCEEDED` - all configuration requests were successful
            - `PARTIALLY_SUCCEEDED` - some configuration requests were applied successfully while others failed or were canceled
            - `FAILED` - all configuration requests have failed
            - `CANCELED` - all configuration requests have been canceled (problems will be empty for this case)
          x-extensible-enum:
            - PENDING
            - RUNNING
            - SUCCEEDED
            - PARTIALLY_SUCCEEDED
            - FAILED
            - CANCELED
        problems:
          description: |
            Problems that have occurred while applying the configuration to the vehicle.

            This property will only be present if at least one of the requests for this vehicle failed
            or any preconditions were not met before configuring the vehicle was attempted.

            The problems found here correspond to the response bodies of the failed individual requests
            that were triggered for this item, if they occurred while applying the configuration.
            Details on these problems can be found in the documentation
            of the individual requests in this API.

            If any preconditions were not met, the corresponding problem can be found in the `validation` property.
          type: object
          externalDocs:
            description: Find out more about how our APIs present errors in our documentation.
            url: https://developers.invers.com/integration-guide/api-basics/#errors
          properties:
            validation:
              allOf:
                - $ref: '#/components/schemas/Problem'
                - description: |
                    Problems that have occurred while validating the item.

                    This property will only be present if and when a problem has occurred while trying to
                    validate the item.
            feature_configuration:
              description: |
                Problems that have occurred while processing the feature configuration portion of this item.

                This property as well as child properties will only be present if and when the corresponding
                configuration request has failed.
              type: object
              properties:
                tracking:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the tracking feature for this item. See the <a href="#tag/Tracking/operation/put-tracking-configuration">corresponding documentation</a> for more details.
                damage_detection:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the damage detection feature for this item. See the <a href="#tag/Damage-Detection/operation/put-damage-detection-configuration">corresponding documentation</a> for more details.
                driving_events:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the driving event feature for this item. See the <a href="#tag/Driving-Events/operation/put-driving-events-configuration">corresponding documentation</a> for more details.
                parking_events:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the parking event feature for this item. See the <a href="#tag/Parking-Events/operation/put-parking-events-configuration">corresponding documentation</a> for more details.
                smoke_detection:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the smoke detection feature for this item. See the <a href="#tag/Smoke-Detection/operation/activate-smoke-detection">corresponding documentation</a> for more details.
                auto_immobilizer_control:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the auto immobilizer control feature for this item. See the <a href="#tag/Auto-Immobilizer-Control/operation/activate-auto-immobilizer-control">corresponding documentation</a> for more details.
                anomaly_detection:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the anomaly detection feature for this item. See the <a href="#tag/Anomaly-Detection/operation/activate-anomaly-detection">corresponding documentation</a> for more details.
                speeding_detection:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the speeding detection feature for this item. See the <a href="#tag/Speeding-Detection/operation/activate-speeding-detection">corresponding documentation</a> for more details.
                maintenance_data:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of the maintenance data feature for this item. See the <a href="#tag/Maintenance-Data/operation/put-maintenance-data-configuration">corresponding documentation</a> for more details.
            cloudboxx_configuration:
              type: object
              description: |
                Problems that have occurred while processing the cloudboxx configuration portion of this item.

                This property as well as child properties will only be present if and when the corresponding configuration request has failed.
              properties:
                obd_alarm:
                  allOf:
                    - $ref: '#/components/schemas/Problem'
                    - description: |
                        The problem that has occurred when applying the configuration of OBD alarm for this item. See the <a href="#tag/OBD-Alarm/operation/activate-obd-alarm">corresponding documentation</a> for more details.
            cloudboxx_settings:
              allOf:
                - $ref: '#/components/schemas/Problem'
                - description: |
                    The problem that has occurred when applying the CloudBoxx settings for this item. See the <a href="#tag/CloudBoxx-settings/operation/patch-cloudboxx-settings">corresponding documentation</a> for more details.
    bulkConfigurationResponse:
      type: object
      required:
        - id
        - status
        - created_at
        - total_count
        - processed_count
        - succeeded_count
        - failed_count
        - items
      properties:
        id:
          $ref: '#/components/schemas/bulkConfigurationId'
        status:
          type: string
          example: RUNNING
          description: |
            The current status of the bulk configuration
            * `RUNNING` - the bulk configuration is in progress and the individual vehicles are being configured
            * `FINISHED` - the bulk configuration is finished, the status of the configuration for the individual vehicles can be found under `items`
            * `CANCELED` - the bulk configuration was canceled, the configuration might have been partially processed, the individual status can be found under `items`
          x-extensible-enum:
            - RUNNING
            - FINISHED
            - CANCELED
        created_at:
          description: The timestamp of the bulk configuration's creation
          type: string
          format: date-time
          example: '2024-01-08T10:29:00Z'
        finished_at:
          description: The timestamp of the bulk configuration's completion
          type: string
          format: date-time
          example: '2024-01-08T10:29:00Z'
        total_count:
          description: The total number of vehicles included in this bulk configuration
          type: integer
          format: int32
          minimum: 1
          maximum: 10000
          example: 263
        processed_count:
          description: The number of vehicles included in this bulk configuration that have reached a final state
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
          example: 142
        succeeded_count:
          description: The number of vehicles included in this bulk configuration that have reached the SUCCEEDED state
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
          example: 122
        failed_count:
          description: The number of vehicles included in this bulk configuration that have reached the FAILED or PARTIALLY_SUCCEEDED state
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
          example: 20
        items:
          description: |
            Configuration items, i.e. the status of the configuration process in regard to each vehicle included in the bulk configuration.
          type: array
          minItems: 1
          maxItems: 10000
          items:
            $ref: '#/components/schemas/bulkConfigurationItem'
        feature_configuration:
          $ref: '#/components/schemas/bulkFeatureConfiguration'
        cloudboxx_configuration:
          $ref: '#/components/schemas/cloudboxxConfigurationRequestSchema'
        cloudboxx_settings:
          $ref: '#/components/schemas/cloudboxxSettingsResponseSchema'
    getResponse:
      description: |
        The tracking configuration defines multiple thresholds.
        When any of these thresholds are met, a vehicle state with tracking information (i.e. a position) is generated.
      type: object
      required:
        - time_interval_in_seconds
        - distance_interval_in_meters
        - heading_change_threshold_in_degrees
        - modified_at
      properties:
        time_interval_in_seconds:
          type: integer
          format: int32
          example: 120
          description: |
            The time interval in seconds at which vehicle states with tracking information are generated.

            You can expect this value to be between 10 and 86400.
            In rare cases, a malfunctioning telematics unit may send values outside of this range.
        distance_interval_in_meters:
          type: integer
          format: int32
          example: 500
          description: |
            The distance the vehicle has to travel before a vehicle state with tracking information is generated.

            You can expect this value to be between 100 and 10000.
            In rare cases, a malfunctioning telematics unit may send values outside of this range.
        heading_change_threshold_in_degrees:
          type: integer
          format: int32
          example: 60
          description: |
            When the heading angle changes by more than the given threshold,
            a vehicle state with tracking information is generated.

            You can expect this value to be between 10 and 170.
            In rare cases, a malfunctioning telematics unit may send values outside of this range.
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: |
            UTC time of when the tracking configuration was last updated.
    schemas-getResponse:
      description: The damage detection configuration defines the placement of the damage detection module as well as the feature activation status.
      type: object
      required:
        - activation_status
        - modified_at
      properties:
        activation_status:
          type: string
          example: ACTIVATION_SUCCEEDED
          description: The current status of the feature activation.
          x-extensible-enum:
            - ACTIVATION_PENDING
            - ACTIVATION_RUNNING
            - ACTIVATION_SUCCEEDED
            - ACTIVATION_FAILED
            - DEACTIVATION_PENDING
            - DEACTIVATION_RUNNING
            - DEACTIVATION_FAILED
          maxLength: 64
        sensor_installation_variant:
          type: string
          pattern: ^[A-Z]$
          example: A
          description: |
            The installation variant used to mount the damage detection module.
        error_message:
          type: string
          description: A human readable error message. Only present if activation_status is `ACTIVATION_FAILED` or `DEACTIVATION_FAILED`.
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: |
            UTC time of when the damage detection configuration was last updated.
    DrivingEvents_schemas-getResponse:
      description: |
        Contains information about the configuration of the driving events feature. The entire object only exists if driving events are configured/enabled.
      type: object
      required:
        - modified_at
      properties:
        crash_detection:
          type: object
          description: |
            Contains the configuration for the crash detected event generation.
            A crash event is generated when the magnitude of the acceleration experienced by the vehicle exceeds the configured threshold.
          required:
            - modified_at
          properties:
            modified_at:
              type: string
              format: date-time
              example: '2022-07-08T10:29:00Z'
              description: UTC time of when the crash detection configuration was last updated.
            minimum_acceleration_in_mg:
              type: integer
              format: int32
              example: 1500
              description: |
                Specifies the minimum acceleration threshold required for crash events, excluding gravitational acceleration.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Any shocks with amplitudes below this threshold will be disregarded.

                You can expect this value to be between 250 and 4000.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
            minimum_duration_in_milliseconds:
              type: integer
              format: int32
              example: 60
              description: |
                Specifies the minimum duration required for a shock to be considered a crash.
                Shocks with a duration shorter than this threshold will be disregarded.

                You can expect this value to be between 1 and 500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
            data_gathering_duration_in_seconds:
              type: integer
              format: int32
              example: 5
              description: |
                This setting determines how long data is collected when a crash is identified, leading to the creation of CrashDetected events.

                When a crash is detected, an initial CrashDetected event is promptly published without additional information.
                Data gathering continues for the period specified by this value.
                Following this period, another CrashDetected event is published.
                This one contains information about the intervening time, such as the average acceleration.

                If the acceleration remains above the specified threshold, consecutive data collection periods are initiated,
                each concluding with the generation of a new CrashDetected event containing relevant data for that specific interval.

                You can expect this value to be between 2 and 10.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
        heavy_braking_detection:
          type: object
          description: |
            Contains the configuration for the generation of heavy braking events.
            A heavy braking event is generated when the longitudinal acceleration exceeds the specified threshold.
          required:
            - modified_at
          properties:
            modified_at:
              type: string
              format: date-time
              example: '2022-07-08T10:29:00Z'
              description: UTC time of when the heavy braking configuration was last updated.
            minimum_longitudinal_acceleration_in_mg:
              type: integer
              format: int32
              example: 500
              description: |
                Specifies the minimum magnitude of longitudinal acceleration for heavy braking events.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Both forward and backward acceleration are considered.

                You can expect this value to be between 250 and 1500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
        harsh_cornering_detection:
          type: object
          description: |
            Contains the configuration for the generation of harsh cornering events.
            A harsh cornering event is generated when the vehicle is too fast in a curve.
          required:
            - modified_at
          properties:
            modified_at:
              type: string
              format: date-time
              example: '2022-07-08T10:29:00Z'
              description: UTC time of when the harsh cornering configuration was last updated.
            minimum_lateral_acceleration_in_mg:
              type: integer
              format: int32
              example: 500
              description: |
                Specifies the minimum magnitude of lateral acceleration for harsh cornering events.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                You can expect this value to be between 250 and 1500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: |
            UTC time of when the driving events configuration was last updated.
    ParkingEvents_schemas-getResponse:
      description: |
        Contains information about the configuration of the parking events feature. The entire object only exists if driving events are configured/enabled.
      type: object
      required:
        - modified_at
      properties:
        shock_detection:
          type: object
          description: |
            Contains the configuration for the shock detected event generation.
            A shock event is generated when the magnitude of the acceleration experienced by the vehicle exceeds the configured threshold.
          required:
            - modified_at
          properties:
            modified_at:
              type: string
              format: date-time
              example: '2022-07-08T10:29:00Z'
              description: UTC time of when the shock detection configuration was last updated.
            minimum_acceleration_in_mg:
              type: integer
              format: int32
              description: |
                Specifies the minimum acceleration threshold required for shock events, excluding gravitational acceleration.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Any shocks with amplitudes below this threshold will be disregarded.

                You can expect this value to be between 0 and 2000.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 200
            minimum_duration_in_milliseconds:
              type: integer
              format: int32
              description: |
                Specifies the minimum duration required for which the minimum acceleration threshold has to be exceeded to be considered a shock event.
                Shocks with a duration shorter than this threshold will be disregarded.

                You can expect this value to be between 1 and 500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 20
            data_gathering_duration_in_seconds:
              type: integer
              format: int32
              description: |
                This setting determines how long data is collected when a shock is identified, leading to the creation of ShockDetected events.

                When a shock is detected, an initial ShockDetected event is promptly published without additional information.
                Data gathering continues for the period specified by this value.
                Following this period, another ShockDetected event is published.
                This one contains information about the intervening time, such as the average acceleration.

                If the acceleration remains above the specified threshold, consecutive data collection periods are initiated,
                each concluding with the generation of a new ShockDetected event containing relevant data for that specific interval.

                You can expect this value to be between 2 and 3600.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 5
        motion_detection:
          type: object
          description: |
            Contains the configuration for motion event generation.
            A sequence of shocks qualifies as a motion when the vehicle's acceleration is exceeding the configured threshold multiple times for at least the configured minimum motion duration while the driving is disabled.

            Motion detection generates a `MotionStarted` and a `MotionEnded` event.
          required:
            - modified_at
          properties:
            modified_at:
              type: string
              format: date-time
              example: '2022-07-08T10:29:00Z'
              description: UTC time of when the motion detection configuration was last updated.
            minimum_initial_acceleration_in_mg:
              type: integer
              format: int32
              description: |
                Specifies the minimum initial acceleration threshold required to detect a motion, excluding gravitational acceleration.
                When a sufficiently long shock exceeding this acceleration is detected,
                a period for monitoring subsequent shocks is started to determine whether this was an isolated shock or whether the vehicle is actually being moved.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").
                Shocks with amplitudes below this threshold are disregarded and will not start the motion monitoring.

                You can expect this value to be between 0 and 2000, but it also must be greater than or equal to `minimum_subsequent_acceleration_in_mg`.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 100
            minimum_subsequent_acceleration_in_mg:
              type: integer
              format: int32
              description: |
                Specifies the minimum acceleration threshold required for detecting subsequent shocks.
                These subsequent shocks are used to decide whether a sequence of shocks constitutes a motion or whether an in-progress motion is still ongoing.

                Acceleration must be above this threshold to qualify as a shock for the motion monitoring.
                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                You can expect this value to be between 0 and 2000.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 50
            minimum_individual_acceleration_duration_in_milliseconds:
              type: integer
              format: int32
              description: |
                Specifies the minimum duration required for any acceleration magnitude exceeding one of the configured thresholds to be considered a shock for motion detection.

                You can expect this value to be between 1 and 500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 20
            minimum_motion_duration_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the shortest timespan for which a sequence of shocks has to be detected in order to generate a `MotionStarted` event.

                If further shocks after the initial shock are not detected for at least this duration, the motion is disregarded and no event will be generated.

                You can expect this value to be between 2 and 3600.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 10
            motion_timeout_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the maximum duration between successive shocks to be considered a single motion.

                If this time is exceeded before the `MotionStarted` event is generated, the motion is disregarded and no motion event is generated.
                If it is exceeded after the `MotionStarted` event is generated, the motion is considered to be over and a `MotionEnded` event is generated.

                Each detected subsequent shock resets the motion timeout.

                You can expect this value to be between 2 and 3600, but it also must be less than `minimum_motion_duration_in_seconds`.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 5
        tilt_detection:
          type: object
          description: |
            Contains the configuration for tilt event generation.
            Tilt detection monitors the vehicle's tilt angle and generates an event if the angle is too large, independent of the direction of tilt.

            The tilt angle is measured relative to the Earth's gravitational field, meaning that the road's slope can influence the measured tilt angle.
          required:
            - modified_at
          properties:
            modified_at:
              type: string
              format: date-time
              example: '2022-07-08T10:29:00Z'
              description: UTC time of when the tilt detection configuration was last updated.
            minimum_angle_in_degrees:
              type: integer
              format: int32
              description: |
                Specifies the minimum tilt angle, in degrees, for the vehicle to be recognized as tilted.
                Hysteresis is used during tilt detection to prevent frequent changes of the tilt status.

                You can expect this value to be between 10 and 170.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 60
            measurement_interval_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the time interval between two consecutive tilt angle measurements. The measurement has a time step resolution of 5 seconds.

                You can expect this value to be between 5 and 3600, but it also must be a whole multiple of 5.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 10
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: |
            UTC time of when the parking events configuration was last updated.
    response:
      description: |
        Shows when the smoke event generation has been activated. The entire object only exists if smoke events are configured/enabled.
      type: object
      required:
        - modified_at
      properties:
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: UTC time of when the smoke detection configuration was last updated.
    lock_conditions:
      type: object
      description: Contains conditions that determine when the immobilizer gets locked automatically while the ignition is off.
      required:
        - use_ble_connection
        - use_doors_status
      properties:
        use_ble_connection:
          type: boolean
          description: |
            Indicates whether a disconnected Bluetooth Low Energy (BLE) connection should be used as a condition for locking the immobilizer.

            Must be true to enable `use_ble_signal_strength`.
        use_ble_signal_strength:
          type: boolean
          description: |
            Indicates whether a BLE signal strength below the threshold defined by `ble_signal_strength_threshold_in_dbm` should be used as a condition for locking the immobilizer.

            Can only be true if `use_ble_connection` is also enabled.
        use_doors_status:
          type: boolean
          description: |
            Indicates whether the status of the vehicle's doors should be used as a condition for locking the immobilizer.

            Can only be true if the vehicle supports the `DOORS_STATUS` capability.
            This condition is only considered in the "ride pause" state, not in the "pre-ride start" state.
        ble_signal_strength_threshold_in_dbm:
          type: integer
          format: int32
          description: |
            Defines the signal strength threshold for the BLE connection, below which the immobilizer will be locked if `use_ble_signal_strength` is true.
          minimum: -80
          maximum: -20
          example: -60
        pre_ride_start_lock_delay_in_seconds:
          type: integer
          format: int32
          description: |
            Specifies the delay between the conditions activating and the immobilizer being locked automatically.
            If the conditions cease before the delay is over, the immobilizer isn't locked and the delay resets.

            This delay is used only in the "pre-ride start" state, i.e. after the immobilizer has been turned off but before the ignition has been turned on.
          minimum: 0
          maximum: 3600
          example: 120
        ride_pause_lock_delay_in_seconds:
          type: integer
          format: int32
          description: |
            Specifies the delay between the conditions activating and the immobilizer being locked automatically.
            If the conditions cease before the delay is over, the immobilizer isn't locked and the delay resets.

            This delay is used only in the "ride pause" state, i.e. after the ignition has been turned off.
          minimum: 0
          maximum: 3600
          example: 120
    AutoImmobilizerControl_schemas-getResponse:
      description: |
        Contains information about the configuration of the auto immobilizer control feature. The entire object only exists if auto immobilizer control is configured/enabled.
      type: object
      required:
        - lock_conditions
        - modified_at
      properties:
        lock_conditions:
          $ref: '#/components/schemas/lock_conditions'
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: UTC time of when the auto immobilizer control configuration was last updated.
    schemas-response:
      description: |
        Shows when the maintenance data generation has been activated. The entire object only exists if maintenance data events are configured/enabled.
      type: object
      required:
        - modified_at
      properties:
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: UTC time of when the maintenance data configuration was last updated.
    AnomalyDetection_schemas-response:
      description: |
        Shows when the anomaly event generation has been activated. The entire object only exists if anomaly events are configured/enabled.
      type: object
      required:
        - modified_at
      properties:
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: UTC time of when the anomaly detection configuration was last updated.
    SpeedingDetection_schemas-response:
      description: |
        Shows when the speeding event generation has been activated. The entire object only exists if speeding events are configured/enabled.
      type: object
      required:
        - modified_at
      properties:
        modified_at:
          type: string
          format: date-time
          example: '2022-07-08T10:29:00Z'
          description: UTC time of when the speeding detection configuration was last updated.
    putRequest:
      description: |
        Parameters for configuring the "tracking" feature
      type: object
      properties:
        time_interval_in_seconds:
          type: integer
          format: int32
          description: |
            The time interval in seconds at which vehicle states with tracking information are generated.
          default: 120
          minimum: 10
          maximum: 86400
          example: 120
        distance_interval_in_meters:
          type: integer
          format: int32
          description: |
            The distance the vehicle has to travel before a vehicle state with tracking information is generated.
          default: 500
          minimum: 100
          maximum: 10000
          example: 500
        heading_change_threshold_in_degrees:
          type: integer
          format: int32
          description: |
            When the heading angle changes by more than the given threshold,
            a vehicle state with tracking information is generated.
          default: 60
          minimum: 10
          maximum: 170
          example: 60
    putResponse:
      description: |
        The tracking configuration defines multiple thresholds.
        When any of these thresholds are met, a vehicle state with tracking information (i.e. a position) is generated.
      type: object
      required:
        - time_interval_in_seconds
        - distance_interval_in_meters
        - heading_change_threshold_in_degrees
      properties:
        time_interval_in_seconds:
          type: integer
          format: int32
          example: 120
          description: |
            The time interval in seconds at which vehicle states with tracking information are generated.

            You can expect this value to be between 10 and 86400.
            In rare cases, a malfunctioning telematics unit may send values outside of this range.
        distance_interval_in_meters:
          type: integer
          format: int32
          example: 500
          description: |
            The distance the vehicle has to travel before a vehicle state with tracking information is generated.

            You can expect this value to be between 100 and 10000.
            In rare cases, a malfunctioning telematics unit may send values outside of this range.
        heading_change_threshold_in_degrees:
          type: integer
          format: int32
          example: 60
          description: |
            When the heading angle changes by more than the given threshold,
            a vehicle state with tracking information is generated.

            You can expect this value to be between 10 and 170.
            In rare cases, a malfunctioning telematics unit may send values outside of this range.
    schemas-putRequest:
      description: |
        Parameters for configuring the "damage detection" feature
      type: object
      required:
        - sensor_installation_variant
      properties:
        sensor_installation_variant:
          type: string
          pattern: ^[A-Z]$
          example: A
          description: |
            Indicates the variant of the sensor to be used for damage detection feature configuration.
    schemas-putResponse:
      description: Activating damage detection.
      type: object
      required:
        - activation_status
        - sensor_installation_variant
      properties:
        activation_status:
          type: string
          example: ACTIVATION_SUCCEEDED
          description: The current status of the feature activation.
          x-extensible-enum:
            - ACTIVATION_PENDING
            - ACTIVATION_RUNNING
            - ACTIVATION_SUCCEEDED
            - ACTIVATION_FAILED
            - DEACTIVATION_PENDING
            - DEACTIVATION_RUNNING
            - DEACTIVATION_FAILED
          maxLength: 64
        sensor_installation_variant:
          type: string
          pattern: ^[A-Z]$
          example: A
          description: |
            The installation variant used to mount the damage detection module.
    deleteResponse:
      description: Deactivating damage detection.
      type: object
      properties:
        activation_status:
          type: string
          example: ACTIVATION_SUCCEEDED
          description: The current status of the feature activation.
          x-extensible-enum:
            - ACTIVATION_PENDING
            - ACTIVATION_RUNNING
            - ACTIVATION_SUCCEEDED
            - ACTIVATION_FAILED
            - DEACTIVATION_PENDING
            - DEACTIVATION_RUNNING
            - DEACTIVATION_FAILED
          maxLength: 64
    DrivingEvents_schemas-putRequest:
      description: |
        Parameters for configuring the "driving events" feature
      type: object
      properties:
        crash_detection:
          type: object
          description: |
            Contains the configuration for the crash detected event generation.
            A crash event is generated when the magnitude of the acceleration experienced by the vehicle exceeds the configured threshold.
          properties:
            minimum_acceleration_in_mg:
              type: integer
              format: int32
              minimum: 250
              maximum: 4000
              default: 1500
              example: 1500
              description: |
                Specifies the minimum acceleration threshold required for crash events, excluding gravitational acceleration.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Any shocks with amplitudes below this threshold will be disregarded.
            minimum_duration_in_milliseconds:
              type: integer
              format: int32
              minimum: 1
              maximum: 500
              default: 60
              example: 60
              description: |
                Specifies the minimum duration required for a shock to be considered a crash.
                Shocks with a duration shorter than this threshold will be disregarded.
            data_gathering_duration_in_seconds:
              type: integer
              format: int32
              minimum: 2
              maximum: 10
              default: 5
              example: 5
              description: |
                This setting determines how long data is collected when a crash is identified, leading to the creation of CrashDetected events.

                When a crash is detected, an initial CrashDetected event is promptly published without additional information.
                Data gathering continues for the period specified by this value.
                Following this period, another CrashDetected event is published.
                This one contains information about the intervening time, such as the average acceleration.

                If the acceleration remains above the specified threshold, consecutive data collection periods are initiated,
                each concluding with the generation of a new CrashDetected event containing relevant data for that specific interval.
        heavy_braking_detection:
          type: object
          description: |
            Contains the configuration for the generation of heavy braking events.
            A heavy braking event is generated when the longitudinal acceleration exceeds the specified threshold.
          properties:
            minimum_longitudinal_acceleration_in_mg:
              type: integer
              format: int32
              minimum: 250
              maximum: 1500
              default: 500
              example: 500
              description: |
                Specifies the minimum magnitude of longitudinal acceleration for heavy braking events.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Both forward and backward acceleration are considered.
        harsh_cornering_detection:
          type: object
          description: |
            Contains the configuration for the generation of harsh cornering events.
            A harsh cornering event is generated when the vehicle is too fast in a curve.
          properties:
            minimum_lateral_acceleration_in_mg:
              type: integer
              format: int32
              minimum: 250
              maximum: 1500
              default: 500
              example: 500
              description: |
                Specifies the minimum magnitude of lateral acceleration for harsh cornering events.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").
    DrivingEvents_schemas-putResponse:
      description: |
        Contains information about the configuration of the driving events feature. The entire object only exists if driving events are configured/enabled.
      type: object
      properties:
        crash_detection:
          type: object
          description: |
            Contains the configuration for the crash detected event generation.
            A crash event is generated when the magnitude of the acceleration experienced by the vehicle exceeds the configured threshold.
          required:
            - minimum_acceleration_in_mg
            - minimum_duration_in_milliseconds
            - data_gathering_duration_in_seconds
          properties:
            minimum_acceleration_in_mg:
              type: integer
              format: int32
              example: 1500
              description: |
                Specifies the minimum acceleration threshold required for crash events, excluding gravitational acceleration.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Any shocks with amplitudes below this threshold will be disregarded.

                You can expect this value to be between 250 and 4000.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
            minimum_duration_in_milliseconds:
              type: integer
              format: int32
              example: 60
              description: |
                Specifies the minimum duration required for a shock to be considered a crash.
                Shocks with a duration shorter than this threshold will be disregarded.

                You can expect this value to be between 1 and 500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
            data_gathering_duration_in_seconds:
              type: integer
              format: int32
              example: 5
              description: |
                This setting determines how long data is collected when a crash is identified, leading to the creation of CrashDetected events.

                When a crash is detected, an initial CrashDetected event is promptly published without additional information.
                Data gathering continues for the period specified by this value.
                Following this period, another CrashDetected event is published.
                This one contains information about the intervening time, such as the average acceleration.

                If the acceleration remains above the specified threshold, consecutive data collection periods are initiated,
                each concluding with the generation of a new CrashDetected event containing relevant data for that specific interval.

                You can expect this value to be between 2 and 10.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
        heavy_braking_detection:
          type: object
          description: |
            Contains the configuration for the generation of heavy braking events.
            A heavy braking event is generated when the longitudinal acceleration exceeds the specified threshold.
          required:
            - minimum_longitudinal_acceleration_in_mg
          properties:
            minimum_longitudinal_acceleration_in_mg:
              type: integer
              format: int32
              example: 500
              description: |
                Specifies the minimum magnitude of longitudinal acceleration for heavy braking events.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Both forward and backward acceleration are considered.

                You can expect this value to be between 250 and 1500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
        harsh_cornering_detection:
          type: object
          description: |
            Contains the configuration for the generation of harsh cornering events.
            A harsh cornering event is generated when the vehicle is too fast in a curve.
          required:
            - minimum_lateral_acceleration_in_mg
          properties:
            minimum_lateral_acceleration_in_mg:
              type: integer
              format: int32
              example: 500
              description: |
                Specifies the minimum magnitude of lateral acceleration for harsh cornering events.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                You can expect this value to be between 250 and 1500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
    ParkingEvents_schemas-putRequest:
      description: |
        Parameters for configuring the "parking events" feature
      type: object
      properties:
        shock_detection:
          type: object
          description: |
            Contains the configuration for the shock detected event generation.
            A shock event is generated when the magnitude of the acceleration experienced by the vehicle exceeds the configured threshold.
          properties:
            minimum_acceleration_in_mg:
              type: integer
              format: int32
              minimum: 0
              maximum: 2000
              default: 200
              example: 200
              description: |
                Specifies the minimum acceleration threshold required for shock events, excluding gravitational acceleration.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Any shocks with amplitudes below this threshold will be disregarded.
            minimum_duration_in_milliseconds:
              type: integer
              format: int32
              minimum: 1
              maximum: 500
              default: 20
              example: 20
              description: |
                Specifies the minimum duration required for which the minimum acceleration threshold has to be exceeded to be considered a shock event.
                Shocks with a duration shorter than this threshold will be disregarded.
            data_gathering_duration_in_seconds:
              type: integer
              format: int32
              minimum: 2
              maximum: 3600
              default: 5
              example: 5
              description: |
                This setting determines how long data is collected when a shock is identified, leading to the creation of ShockDetected events.

                When a shock is detected, an initial ShockDetected event is promptly published without additional information.
                Data gathering continues for the period specified by this value.
                Following this period, another ShockDetected event is published.
                This one contains information about the intervening time, such as the average acceleration.

                If the acceleration remains above the specified threshold, consecutive data collection periods are initiated,
                each concluding with the generation of a new ShockDetected event containing relevant data for that specific interval.
        motion_detection:
          type: object
          description: |
            Contains the configuration for motion event generation.
            A sequence of shocks qualifies as a motion when the vehicle's acceleration is exceeding the configured threshold multiple times for at least the configured minimum motion duration while the driving is disabled.

            Motion detection generates a `MotionStarted` and a `MotionEnded` event.
          properties:
            minimum_initial_acceleration_in_mg:
              type: integer
              format: int32
              minimum: 0
              maximum: 2000
              default: 100
              example: 100
              description: |
                Specifies the minimum initial acceleration threshold required to detect a motion, excluding gravitational acceleration.
                When a sufficiently long shock exceeding this acceleration is detected,
                a period for monitoring subsequent shocks is started to determine whether this was an isolated shock or whether the vehicle is actually being moved.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").
                Shocks with amplitudes below this threshold are disregarded and will not start the motion monitoring.

                This value must be greater than or equal to `minimum_subsequent_acceleration_in_mg`.
            minimum_subsequent_acceleration_in_mg:
              type: integer
              format: int32
              minimum: 0
              maximum: 2000
              default: 50
              example: 50
              description: |
                Specifies the minimum acceleration threshold required for detecting subsequent shocks.
                These subsequent shocks are used to decide whether a sequence of shocks constitutes a motion or whether an in-progress motion is still ongoing.

                Acceleration must be above this threshold to qualify as a shock for the motion monitoring.
                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").
            minimum_individual_acceleration_duration_in_milliseconds:
              type: integer
              format: int32
              minimum: 1
              maximum: 500
              default: 20
              example: 20
              description: |
                Specifies the minimum duration required for any acceleration magnitude exceeding one of the configured thresholds to be considered a shock for motion detection.
            minimum_motion_duration_in_seconds:
              type: integer
              format: int32
              minimum: 2
              maximum: 3600
              default: 10
              example: 10
              description: |
                Specifies the shortest timespan for which a sequence of shocks has to be detected in order to generate a `MotionStarted` event.
            motion_timeout_in_seconds:
              type: integer
              format: int32
              minimum: 2
              maximum: 3600
              default: 5
              example: 5
              description: |
                Specifies the maximum duration between successive shocks to be considered a single motion.

                If this time is exceeded before the `MotionStarted` event is generated, the motion is disregarded and no motion event is generated.
                If it is exceeded after the `MotionStarted` event is generated, the motion is considered to be over and a `MotionEnded` event is generated.

                Each detected subsequent shock resets the motion timeout.

                This value must be less than `minimum_motion_duration_in_seconds`.
        tilt_detection:
          type: object
          description: |
            Contains the configuration for tilt event generation.
            Tilt detection monitors the vehicle's tilt angle and generates an event if the angle is too large, independent of the direction of tilt.

            The tilt angle is measured relative to the Earth's gravitational field, meaning that the road's slope can influence the measured tilt angle.
          properties:
            minimum_angle_in_degrees:
              type: integer
              format: int32
              minimum: 10
              maximum: 170
              default: 60
              example: 60
              description: |
                Specifies the minimum tilt angle, in degrees, for the vehicle to be recognized as tilted.
                Hysteresis is used during tilt detection to prevent frequent changes of the tilt status.
            measurement_interval_in_seconds:
              type: integer
              format: int32
              minimum: 5
              maximum: 3600
              default: 10
              example: 10
              description: |
                Specifies the time interval between two consecutive tilt angle measurements. The measurement has a time step resolution of 5 seconds.

                This value must be a whole multiple of 5.
    ParkingEvents_schemas-putResponse:
      description: |
        Contains information about the configuration of the parking events feature. The entire object only exists if driving events are configured/enabled.
      type: object
      properties:
        shock_detection:
          type: object
          description: |
            Contains the configuration for the shock detected event generation.
            A shock event is generated when the magnitude of the acceleration experienced by the vehicle exceeds the configured threshold.
          required:
            - minimum_acceleration_in_mg
            - minimum_duration_in_milliseconds
            - data_gathering_duration_in_seconds
          properties:
            minimum_acceleration_in_mg:
              type: integer
              format: int32
              description: |
                Specifies the minimum acceleration threshold required for shock events, excluding gravitational acceleration.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                Any shocks with amplitudes below this threshold will be disregarded.

                You can expect this value to be between 0 and 2000.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 200
            minimum_duration_in_milliseconds:
              type: integer
              format: int32
              description: |
                Specifies the minimum duration required for which the minimum acceleration threshold has to be exceeded to be considered a shock event.
                Shocks with a duration shorter than this threshold will be disregarded.

                You can expect this value to be between 1 and 500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 20
            data_gathering_duration_in_seconds:
              type: integer
              format: int32
              description: |
                This setting determines how long data is collected when a shock is identified, leading to the creation of ShockDetected events.

                When a shock is detected, an initial ShockDetected event is promptly published without additional information.
                Data gathering continues for the period specified by this value.
                Following this period, another ShockDetected event is published.
                This one contains information about the intervening time, such as the average acceleration.

                If the acceleration remains above the specified threshold, consecutive data collection periods are initiated,
                each concluding with the generation of a new ShockDetected event containing relevant data for that specific interval.

                You can expect this value to be between 2 and 3600.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 5
        motion_detection:
          type: object
          description: |
            Contains the configuration for motion event generation.
            A sequence of shocks qualifies as a motion when the vehicle's acceleration is exceeding the configured threshold multiple times for at least the configured minimum motion duration while the driving is disabled.

            Motion detection generates a `MotionStarted` and a `MotionEnded` event.
          required:
            - minimum_initial_acceleration_in_mg
            - minimum_subsequent_acceleration_in_mg
            - minimum_individual_acceleration_duration_in_milliseconds
            - minimum_motion_duration_in_seconds
            - motion_timeout_in_seconds
          properties:
            minimum_initial_acceleration_in_mg:
              type: integer
              format: int32
              description: |
                Specifies the minimum initial acceleration threshold required to detect a motion, excluding gravitational acceleration.
                When a sufficiently long shock exceeding this acceleration is detected,
                a period for monitoring subsequent shocks is started to determine whether this was an isolated shock or whether the vehicle is actually being moved.

                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").
                Shocks with amplitudes below this threshold are disregarded and will not start the motion monitoring.

                You can expect this value to be between 0 and 2000, but it also must be greater than or equal to `minimum_subsequent_acceleration_in_mg`.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 100
            minimum_subsequent_acceleration_in_mg:
              type: integer
              format: int32
              description: |
                Specifies the minimum acceleration threshold required for detecting subsequent shocks.
                These subsequent shocks are used to decide whether a sequence of shocks constitutes a motion or whether an in-progress motion is still ongoing.

                Acceleration must be above this threshold to qualify as a shock for the motion monitoring.
                This threshold is expressed in "milli-g", which represents a thousandth of the standard acceleration of gravity ("g").

                You can expect this value to be between 0 and 2000.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 50
            minimum_individual_acceleration_duration_in_milliseconds:
              type: integer
              format: int32
              description: |
                Specifies the minimum duration required for any acceleration magnitude exceeding one of the configured thresholds to be considered a shock for motion detection.

                You can expect this value to be between 1 and 500.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 20
            minimum_motion_duration_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the shortest timespan for which a sequence of shocks has to be detected in order to generate a `MotionStarted` event.

                If further shocks after the initial shock are not detected for at least this duration, the motion is disregarded and no event will be generated.

                You can expect this value to be between 2 and 3600.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 10
            motion_timeout_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the maximum duration between successive shocks to be considered a single motion.

                If this time is exceeded before the `MotionStarted` event is generated, the motion is disregarded and no motion event is generated.
                If it is exceeded after the `MotionStarted` event is generated, the motion is considered to be over and a `MotionEnded` event is generated.

                Each detected subsequent shock resets the motion timeout.

                You can expect this value to be between 2 and 3600, but it also must be less than `minimum_motion_duration_in_seconds`.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 5
        tilt_detection:
          type: object
          description: |
            Contains the configuration for tilt event generation.
            Tilt detection monitors the vehicle's tilt angle and generates an event if the angle is too large, independent of the direction of tilt.

            The tilt angle is measured relative to the Earth's gravitational field, meaning that the road's slope can influence the measured tilt angle.
          required:
            - minimum_angle_in_degrees
            - measurement_interval_in_seconds
          properties:
            minimum_angle_in_degrees:
              type: integer
              format: int32
              description: |
                Specifies the minimum tilt angle, in degrees, for the vehicle to be recognized as tilted.
                Hysteresis is used during tilt detection to prevent frequent changes of the tilt status.

                You can expect this value to be between 10 and 170.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 60
            measurement_interval_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the time interval between two consecutive tilt angle measurements. The measurement has a time step resolution of 5 seconds.

                You can expect this value to be between 5 and 3600, but it also must be a whole multiple of 5.
                In rare cases, a malfunctioning telematics unit may send values outside of this range.
              example: 10
    AutoImmobilizerControl_schemas-putRequest:
      description: |
        Parameters for configuring the "auto-immobilizer-control" feature
      type: object
      required:
        - lock_conditions
      properties:
        lock_conditions:
          allOf:
            - $ref: '#/components/schemas/lock_conditions'
            - properties:
                use_ble_signal_strength:
                  default: false
                ble_signal_strength_threshold_in_dbm:
                  default: -60
                pre_ride_start_lock_delay_in_seconds:
                  default: 120
                ride_pause_lock_delay_in_seconds:
                  default: 120
    AutoImmobilizerControl_schemas-putResponse:
      type: object
      required:
        - lock_conditions
      properties:
        lock_conditions:
          type: object
          description: Contains conditions that determine when the immobilizer gets locked automatically while the ignition is off.
          required:
            - use_ble_connection
            - use_doors_status
          properties:
            use_ble_connection:
              type: boolean
              description: |
                Indicates whether a disconnected Bluetooth Low Energy (BLE) connection should be used as a condition for locking the immobilizer.

                Must be true to enable `use_ble_signal_strength`.
            use_ble_signal_strength:
              type: boolean
              description: |
                Indicates whether a BLE signal strength below the threshold defined by `ble_signal_strength_threshold_in_dbm` should be used as a condition for locking the immobilizer.

                Can only be true if `use_ble_connection` is also enabled.
            use_doors_status:
              type: boolean
              description: |
                Indicates whether the status of the vehicle's doors should be used as a condition for locking the immobilizer.

                Can only be true if the vehicle supports the `DOORS_STATUS` capability.
                This condition is only considered in the "ride pause" state, not in the "pre-ride start" state.
            ble_signal_strength_threshold_in_dbm:
              type: integer
              format: int32
              description: |
                Defines the signal strength threshold for the BLE connection, below which the immobilizer will be locked if `use_ble_signal_strength` is true.
              minimum: -80
              maximum: -20
              example: -60
            pre_ride_start_lock_delay_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the delay between the conditions activating and the immobilizer being locked automatically.
                If the conditions cease before the delay is over, the immobilizer isn't locked and the delay resets.

                This delay is used only in the "pre-ride start" state, i.e. after the immobilizer has been turned off but before the ignition has been turned on.
              minimum: 0
              maximum: 3600
              example: 120
            ride_pause_lock_delay_in_seconds:
              type: integer
              format: int32
              description: |
                Specifies the delay between the conditions activating and the immobilizer being locked automatically.
                If the conditions cease before the delay is over, the immobilizer isn't locked and the delay resets.

                This delay is used only in the "ride pause" state, i.e. after the ignition has been turned off.
              minimum: 0
              maximum: 3600
              example: 120
    telematicsUnitSupplyVoltageAlarmThresholdsBase:
      type: object
      properties:
        alarm_threshold_in_volts:
          description: The telematics unit supply voltage is considered to be low if the voltage falls below this value.
          type: number
          format: double
          example: 8
        recover_threshold_in_volts:
          description: The telematics unit supply voltage is considered to be normal if the voltage rises above this value.
          type: number
          format: double
          example: 10
    telematicsUnitSupplyVoltageAlarmThresholds3G:
      allOf:
        - $ref: '#/components/schemas/telematicsUnitSupplyVoltageAlarmThresholdsBase'
        - title: CloudBoxx 3G
          properties:
            alarm_threshold_in_volts:
              minimum: 6
              maximum: 12
            recover_threshold_in_volts:
              minimum: 6.5
              maximum: 12.5
    telematicsUnitSupplyVoltageAlarmThresholdsMini:
      allOf:
        - $ref: '#/components/schemas/telematicsUnitSupplyVoltageAlarmThresholdsBase'
        - title: CloudBoxx MINI
          properties:
            alarm_threshold_in_volts:
              minimum: 7
              maximum: 99.5
            recover_threshold_in_volts:
              minimum: 7.5
              maximum: 100
    telematicsUnitSupplyVoltageAlarmThresholds4G:
      allOf:
        - $ref: '#/components/schemas/telematicsUnitSupplyVoltageAlarmThresholdsBase'
        - title: CloudBoxx 4G/1020
          properties:
            alarm_threshold_in_volts:
              minimum: 7
              maximum: 55.5
            recover_threshold_in_volts:
              minimum: 7.5
              maximum: 56
    fuelLevelAlarmThresholdsEnabled:
      type: object
      additionalProperties: false
      required:
        - enabled
        - alarm_threshold_in_percent
        - recover_threshold_in_percent
      properties:
        enabled:
          type: boolean
          description: Whether the fuel level alarm thresholds are enabled.
          example: true
        alarm_threshold_in_percent:
          type: integer
          format: int32
          nullable: true
          minimum: 5
          maximum: 90
          description: |
            An alarm is raised when the fuel level falls below this value.
            If set to a value, it must be at least 5 percentage points lower than `recover_threshold_in_percent`.
          example: 15
        recover_threshold_in_percent:
          type: integer
          format: int32
          nullable: true
          minimum: 10
          maximum: 95
          description: |
            A previously raised alarm is recovered when the fuel level gets greater than this value.
            Must be at least 5 percentage points higher than `alarm_threshold_in_percent`.
          example: 20
    fuelLevelAlarmThresholdsDisabled:
      type: object
      additionalProperties: false
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          description: Whether the fuel level alarm thresholds are enabled.
          example: false
  examples:
    getFeatureConfigurationExample:
      value:
        tracking:
          time_interval_in_seconds: 120
          distance_interval_in_meters: 500
          heading_change_threshold_in_degrees: 60
          modified_at: '2023-07-19T14:33:01Z'
        damage_detection:
          activation_status: ACTIVATION_SUCCEEDED
          sensor_installation_variant: A
          modified_at: '2023-07-19T14:33:01Z'
        driving_events:
          crash_detection:
            minimum_acceleration_in_mg: 1500
            minimum_duration_in_milliseconds: 60
            data_gathering_duration_in_seconds: 5
            modified_at: '2023-07-19T14:33:01Z'
          heavy_braking_detection:
            minimum_longitudinal_acceleration_in_mg: 500
            modified_at: '2023-07-19T14:33:01Z'
          harsh_cornering_detection:
            minimum_lateral_acceleration_in_mg: 500
            modified_at: '2023-07-19T14:33:01Z'
          modified_at: '2023-07-19T14:33:01Z'
        parking_events:
          shock_detection:
            minimum_acceleration_in_mg: 200
            minimum_duration_in_milliseconds: 20
            data_gathering_duration_in_seconds: 5
            modified_at: '2023-07-19T14:33:01Z'
          motion_detection:
            minimum_initial_acceleration_in_mg: 100
            minimum_subsequent_acceleration_in_mg: 50
            minimum_individual_acceleration_duration_in_milliseconds: 20
            minimum_motion_duration_in_seconds: 10
            motion_timeout_in_seconds: 5
            modified_at: '2023-07-19T14:33:01Z'
          tilt_detection:
            minimum_angle_in_degrees: 60
            measurement_interval_in_seconds: 10
            modified_at: '2023-07-19T14:33:01Z'
          modified_at: '2023-07-19T14:33:01Z'
        smoke_detection:
          modified_at: '2023-07-19T14:33:01Z'
        anomaly_detection:
          modified_at: '2023-07-19T14:33:01Z'
        speeding_detection:
          modified_at: '2023-07-19T14:33:01Z'
        maintenance_data:
          modified_at: '2023-07-19T14:33:01Z'
        auto_immobilizer_control:
          lock_conditions:
            use_ble_connection: true
            use_doors_status: true
            use_ble_signal_strength: false
            ble_signal_strength_threshold_in_dbm: -60
            pre_ride_start_lock_delay_in_seconds: 120
            ride_pause_lock_delay_in_seconds: 120
          modified_at: '2023-07-19T14:33:01Z'
    problemsNotFound:
      value:
        type: /problems/resource-not-found
        type_documentation: https://developers.invers.com/problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: Resource with ID 'MT3T3' was not found.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleNotFound:
      value:
        type: /problems/resource-not-found
        type_documentation: https://developers.invers.com/problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The vehicle with ID 'MT3T3' cannot be found.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTrackingNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'tracking' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsMissingTrackingFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'tracking' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTrackingOutOfRange:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The property 'tracking_time_interval_seconds' is out of range.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTelematicsBrandNotSupported:
      value:
        type: /problems/validation-error
        type_documentation: https://developers.invers.com/problems/validation-error
        title: Validation Error
        status: 400
        detail: The vehicle 'JQ7RP' uses a 'MERCEDES' telematics unit. This telematics unit brand does not support the configuration of this feature.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleDoesNotSupportCloudboxxSettings:
      value:
        type: /problems/unknown-resource
        type_documentation: https://developers.invers.com/problems/unknown-resource/
        title: The requested resource does not exist
        status: 404
        detail: The vehicle with ID 'MT3T3' does not support CloudBoxx settings.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsInSetup:
      value:
        type: /problems/vehicle/conflicting-setup-status
        title: The operation cannot be performed due to the vehicle's setup status.
        status: 409
        detail: The vehicle 'JQ7RP' is not ready for use because its setup status is 'RUNNING'.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsSetupNotSucceeded:
      value:
        type: /problems/vehicle/conflicting-setup-status
        title: The operation cannot be performed due to the vehicle's setup status.
        status: 409
        detail: The vehicle 'JQ7RP' is not ready for use because its setup status is not 'SUCCEEDED'.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTimeOut:
      value:
        type: /problems/vehicle/no-connection
        title: No connection to vehicle
        status: 504
        detail: The vehicle 'JQ7RP' didn't answer in time.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsIncompatibleFirmwareVersion:
      value:
        type: /problems/incompatible-firmware-version
        title: Incompatible firmware version
        status: 409
        detail: The feature is not supported by the CloudBoxx firmware version.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsIncompatibleSpeedingDetection:
      value:
        type: /problems/vehicle/conflicting-resource
        title: The operation cannot be performed due to speeding detection is activated.
        status: 409
        detail: Cannot modify tracking configuration while speeding detection is activated.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsIncompatibleAnomalyDetection:
      value:
        type: /problems/vehicle/conflicting-resource
        title: The operation cannot be performed due to anomaly detection is activated.
        status: 409
        detail: Cannot modify parking events configuration while anomaly detection is activated.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsIncompatibleTelematicsUnitModel:
      value:
        type: /problems/incompatible-telematics-unit-model
        title: Incompatible telematics unit model
        status: 409
        detail: The feature is not supported by the CloudBoxx model.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsIncompatibleTelematicsUnitModelCloudBoxxSettings:
      value:
        type: /problems/incompatible-telematics-unit-model
        title: Incompatible telematics unit model
        status: 409
        detail: The parameter beeper_enable is only available for CloudBoxxes 3G, 4G, 1020.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleSharedRequestRestrictedToOwner:
      value:
        type: /problems/vehicle/shared-with-partner
        title: The vehicle is currently shared with a partner.
        status: 409
        detail: The vehicle 'JQ7RP' is currently shared. Only the owner of the vehicle can use this request.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsFeatureNotSupported:
      value:
        type: /problems/vehicle/feature-not-supported
        title: The vehicle does not support the requested feature.
        status: 409
        detail: The feature 'auto-immobilizer-control' requires the vehicle to have the 'IGNITION' capability.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    cloudboxxSettingsResponseExample:
      value:
        beeper_enabled: true
        dead_reckoning_position_enabled: false
        current_mileage_in_kilometers: 42.7
        mileage_source: OBD2
        ignition_source: OBD2
        telematics_unit_supply_voltage_alarm_thresholds:
          alarm_threshold_in_volts: 8
          recover_threshold_in_volts: 10
        fuel_level_smoothing: true
        fuel_level_alarm_thresholds:
          enabled: true
          alarm_threshold_in_percent: 15
          recover_threshold_in_percent: 20
    cloudboxxSettingsRequestExample:
      value:
        beeper_enabled: true
        fuel_level_alarm_thresholds:
          enabled: true
          alarm_threshold_in_percent: 15
          recover_threshold_in_percent: 20
    problemsCloudboxxSettingsBodyEmpty:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The request body must contain at least one property that is not null
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsValidationError:
      value:
        type: /problems/validation-error
        type_documentation: https://developers.invers.com/problems/validation-error
        title: Validation Error
        status: 400
        detail: Either 'feature_configuration' or 'cloudboxx_settings' must not be null or empty
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    postBulkConfigurationRequestExample:
      value:
        items:
          - id: AVG7J
          - id: 7C3GK
          - id: Z37PA
        feature_configuration:
          parking_events:
            shock_detection:
              minimum_acceleration_in_mg: 200
              minimum_duration_in_milliseconds: 20
              data_gathering_duration_in_seconds: 5
          damage_detection:
            sensor_installation_variant: A
          smoke_detection: {}
          anomaly_detection: {}
          speeding_detection: {}
          maintenance_data: {}
          auto_immobilizer_control:
            lock_conditions:
              use_ble_connection: true
              use_doors_status: true
              use_ble_signal_strength: false
              ble_signal_strength_threshold_in_dbm: -60
              pre_ride_start_lock_delay_in_seconds: 120
              ride_pause_lock_delay_in_seconds: 120
        cloudboxx_configuration:
          obd_alarm:
            enabled: true
            modified_at: '2023-12-28T11:49:49.394Z'
    postBulkConfigurationSuccessResponseExample:
      value:
        id: 01HKA9VJ2Y51DVGDKQVFX8TJGY
        status: RUNNING
        created_at: '2023-12-28T11:49:49.394Z'
        total_count: 3
        processed_count: 0
        succeeded_count: 0
        failed_count: 0
        items:
          - id: AVG7J
            status: PENDING
          - id: 7C3GK
            status: PENDING
          - id: Z37PA
            status: PENDING
        feature_configuration:
          parking_events:
            shock_detection:
              minimum_acceleration_in_mg: 200
              minimum_duration_in_milliseconds: 20
              data_gathering_duration_in_seconds: 5
          damage_detection:
            sensor_installation_variant: A
          smoke_detection: {}
          anomaly_detection: {}
          speeding_detection: {}
          maintenance_data: {}
          auto_immobilizer_control:
            lock_conditions:
              use_ble_connection: true
              use_doors_status: true
              use_ble_signal_strength: false
              ble_signal_strength_threshold_in_dbm: -60
              pre_ride_start_lock_delay_in_seconds: 120
              ride_pause_lock_delay_in_seconds: 120
        cloudboxx_configuration:
          obd_alarm:
            enabled: true
            modified_at: '2023-12-28T11:49:49.394Z'
    getBulkConfigurationSuccessRunningResponse:
      value:
        id: 01HKA9VJ2Y51DVGDKQVFX8TJGY
        status: RUNNING
        created_at: '2023-12-28T11:49:49.394Z'
        total_count: 5
        processed_count: 3
        succeeded_count: 1
        failed_count: 3
        items:
          - id: AVG7J
            status: RUNNING
          - id: 7C3GK
            status: SUCCEEDED
          - id: Z37PA
            status: PARTIALLY_SUCCEEDED
            problems:
              feature_configuration:
                damage_detection:
                  type: /problems/conflicting-operation
                  title: Request cannot be processed due to a conflicting ongoing operation.
                  status: 409
                  detail: The vehicle `Z37PA` is already processing a `damage-detection` feature activation job.
                  flow_id: d3098b58-e4dd-46d7-892a-c626e6596925
          - id: Z37PA
            status: FAILED
            problems:
              feature_configuration:
                damage_detection:
                  type: /problems/resource-not-found
                  type_documentation: https://developers.invers.com/problems/resource-not-found
                  title: The resource cannot be found.
                  status: 404
                  detail: Resource with id 'Z37PA' was not found.
                  flow_id: 237d9bb8-8978-48d2-9289-69b84ec99b8b
                parking_events:
                  type: /problems/resource-not-found
                  type_documentation: https://developers.invers.com/problems/resource-not-found
                  title: The resource cannot be found.
                  status: 404
                  detail: Resource with id 'Z37PA' was not found.
                  flow_id: 087298b6-67c3-4522-87b0-7d9a0c4bcf66
          - id: XP41N
            status: FAILED
            problems:
              validation:
                type: /problems/resource-not-found
                type_documentation: https://developers.invers.com/problems/resource-not-found
                title: The resource cannot be found.
                status: 404
                detail: Vehicle with id 'Z37PA' was not found.
                flow_id: d28f6748-9276-4da1-9bca-1aa6ec3fb48a
        feature_configuration:
          parking_events:
            shock_detection:
              minimum_acceleration_in_mg: 200
              minimum_duration_in_milliseconds: 20
              data_gathering_duration_in_seconds: 5
          damage_detection:
            sensor_installation_variant: A
        cloudboxx_configuration:
          obd_alarm: {}
    getBulkConfigurationSuccessFinishedResponse:
      value:
        id: 01HKA9VJ2Y51DVGDKQVFX8TJGY
        status: FINISHED
        created_at: '2023-12-28T11:49:49.394Z'
        finished_at: '2023-12-28T14:22:16.739Z'
        total_count: 4
        processed_count: 4
        succeeded_count: 2
        failed_count: 2
        items:
          - id: AVG7J
            status: SUCCEEDED
          - id: 7C3GK
            status: SUCCEEDED
          - id: Z37PA
            status: PARTIALLY_SUCCEEDED
            problems:
              feature_configuration:
                damage_detection:
                  type: /problems/conflicting-operation
                  title: Request cannot be processed due to a conflicting ongoing operation.
                  status: 409
                  detail: The vehicle `Z37PA` is already processing a `damage-detection` feature activation job.
                  flow_id: 58074901-3e8b-4171-8107-543cbcf44d87
          - id: Z37PA
            status: FAILED
            problems:
              feature_configuration:
                damage_detection:
                  type: /problems/resource-not-found
                  type_documentation: https://developers.invers.com/problems/resource-not-found
                  title: The resource cannot be found.
                  status: 404
                  detail: Resource with id 'Z37PA' was not found.
                  flow_id: d399bc5b-a178-4bb7-a802-8885a4562d51
                parking_events:
                  type: /problems/resource-not-found
                  type_documentation: https://developers.invers.com/problems/resource-not-found
                  title: The resource cannot be found.
                  status: 404
                  detail: Resource with id 'Z37PA' was not found.
                  flow_id: 7710940c-19e7-442e-96a2-aeb79d190e79
        feature_configuration:
          parking_events:
            shock_detection:
              minimum_acceleration_in_mg: 200
              minimum_duration_in_milliseconds: 20
              data_gathering_duration_in_seconds: 5
          damage_detection:
            sensor_installation_variant: A
          obd_alarm: {}
    getBulkConfigurationSuccessCanceledResponse:
      value:
        id: 01HKA9VJ2Y51DVGDKQVFX8TJGY
        status: CANCELED
        created_at: '2023-12-28T11:49:49.394Z'
        finished_at: '2023-12-28T14:22:16.739Z'
        total_count: 4
        processed_count: 2
        succeeded_count: 2
        failed_count: 0
        items:
          - id: AVG7J
            status: SUCCEEDED
          - id: 7C3GK
            status: SUCCEEDED
          - id: Z37PA
            status: CANCELED
          - id: Z37PA
            status: CANCELED
        feature_configuration:
          parking_events:
            shock_detection:
              minimum_acceleration_in_mg: 200
              minimum_duration_in_milliseconds: 20
              data_gathering_duration_in_seconds: 5
          damage_detection:
            sensor_installation_variant: A
        cloudboxx_configuration:
          obd_alarm: {}
    getDamageDetectionConfigurationResponseExample:
      value:
        activation_status: ACTIVATION_PENDING
        sensor_installation_variant: A
        modified_at: '2023-07-19T14:33:01Z'
    problemsDamageDetectionConfigurationNotFound:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'damage-detection' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    putDamageDetectionConfigurationRequestExample:
      value:
        sensor_installation_variant: A
    putDamageDetectionConfigurationResponseExample:
      value:
        activation_status: ACTIVATION_PENDING
        sensor_installation_variant: A
    problemsMissingDamageDetectionFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'damage-detection' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDamageDetectionOutOfRange:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The property 'sensor_installation_variant' is out of range.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDamageDetectionVehicleModelDoesNotSupportDamageDetection:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The vehicle model with ID '01F4XW6QHWKT4HMSFDZ9CCQH1G' which is currently being used by the vehicle does not support the damage detection feature.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDamageDetectionVehicleModelDoesNotSupportInstallationVariant:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The vehicle model with ID '01F4XW6QHWKT4HMSFDZ9CCQH1G' which is currently being used by the vehicle does not support the given 'sensor_installation_variant'.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDamageDetectionConflictingOperation:
      value:
        type: /problems/conflicting-operation
        title: Request cannot be processed due to a conflicting ongoing operation.
        status: 409
        detail: The vehicle `JQ7RP` is already processing a `damage-detection` feature activation job.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDamageDetectionVinOrLicensePlateNotFound:
      value:
        type: /problems/conflicting-resource
        title: Request cannot be processed due to a conflicting resource or resource state.
        status: 409
        detail: The vehicle `JQ7RP` is missing the required VIN or license plate information.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDamageDetectionActivated:
      value:
        type: /problems/conflicting-resource
        title: Request cannot be processed due to a conflicting resource or resource state.
        status: 409
        detail: The damage detection for the vehicle 'JQ7RP' has already been activated.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    deactivateDamageDetectionExample:
      value:
        activation_status: DEACTIVATION_PENDING
    cancelDamageDetectionExample:
      value: {}
    getDrivingEventsConfigurationExample:
      value:
        crash_detection:
          minimum_acceleration_in_mg: 1500
          minimum_duration_in_milliseconds: 60
          data_gathering_duration_in_seconds: 5
          modified_at: '2023-07-19T14:33:01Z'
        heavy_braking_detection:
          minimum_longitudinal_acceleration_in_mg: 500
          modified_at: '2023-07-19T14:33:01Z'
        harsh_cornering_detection:
          minimum_lateral_acceleration_in_mg: 500
          modified_at: '2023-07-19T14:33:01Z'
        modified_at: '2023-07-19T14:33:01Z'
    problemsDrivingEventsNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'driving-events' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    putDrivingEventsConfigurationExample:
      value:
        crash_detection:
          minimum_acceleration_in_mg: 1500
          minimum_duration_in_milliseconds: 60
          data_gathering_duration_in_seconds: 5
        heavy_braking_detection:
          minimum_longitudinal_acceleration_in_mg: 500
        harsh_cornering_detection:
          minimum_lateral_acceleration_in_mg: 500
    problemsMissingDrivingEventsFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'driving-events' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsDrivingEventsOutOfRange:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The property 'minimum_acceleration_in_mg' is out of range.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    getParkingEventsConfigurationExample:
      value:
        shock_detection:
          minimum_acceleration_in_mg: 200
          minimum_duration_in_milliseconds: 20
          data_gathering_duration_in_seconds: 5
          modified_at: '2023-07-19T14:33:01Z'
        motion_detection:
          minimum_initial_acceleration_in_mg: 100
          minimum_subsequent_acceleration_in_mg: 50
          minimum_individual_acceleration_duration_in_milliseconds: 20
          minimum_motion_duration_in_seconds: 10
          motion_timeout_in_seconds: 5
          modified_at: '2023-07-19T14:33:01Z'
        tilt_detection:
          minimum_angle_in_degrees: 60
          measurement_interval_in_seconds: 10
          modified_at: '2023-07-19T14:33:01Z'
        modified_at: '2023-07-19T14:33:01Z'
    problemsParkingEventsNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'parking-events' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    putParkingEventsConfigurationExample:
      value:
        shock_detection:
          minimum_acceleration_in_mg: 200
          minimum_duration_in_milliseconds: 20
          data_gathering_duration_in_seconds: 5
        motion_detection:
          minimum_initial_acceleration_in_mg: 100
          minimum_subsequent_acceleration_in_mg: 50
          minimum_individual_acceleration_duration_in_milliseconds: 20
          minimum_motion_duration_in_seconds: 10
          motion_timeout_in_seconds: 5
        tilt_detection:
          minimum_angle_in_degrees: 60
          measurement_interval_in_seconds: 10
    problemsMissingParkingEventsFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'parking-events' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsParkingEventsOutOfRange:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The property 'minimum_angle_in_degrees' is out of range.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleMovedDuringCalibration:
      value:
        type: /problems/vehicle/conflicting-state
        title: The command cannot be executed due to the current state of the vehicle.
        status: 409
        detail: The vehicle 'JQ7RP' moved during calibration.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    getSmokeDetectionConfigurationExample:
      value:
        modified_at: '2023-07-19T14:33:01Z'
    problemsSmokeDetectionNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'smoke-detection' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsMissingSmokeDetectionFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'smoke-detection' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsFirmwareVersionIncompatibleWithSmokeDetection:
      value:
        type: /problems/incompatible-firmware-version
        title: Incompatible firmware version
        status: 409
        detail: The firmware version is incompatible with smoke detection. The minimum firmware version required is 2.20.0.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTelematicsUnitModelIncompatibleWithSmokeDetection:
      value:
        type: /problems/incompatible-telematics-unit-model
        title: Incompatible telematics unit model
        status: 409
        detail: The smoke detection feature is only supported by CloudBoxx 4G and 1020.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsFirmwareVersionIncompatibleWithObdAlarm:
      value:
        type: /problems/incompatible-firmware-version
        title: Incompatible firmware version
        status: 409
        detail: The firmware version is incompatible with OBD alarm. The minimum firmware version required is 2.24.0.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTelematicsUnitModelIncompatibleWithObdAlarm:
      value:
        type: /problems/incompatible-telematics-unit-model
        title: Incompatible telematics unit model
        status: 409
        detail: OBD alarm is only supported by CloudBoxx 4G and 1020.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsInstallationVariantIncompatibleWithObdAlarm:
      value:
        type: /problems/incompatible-installation-variant
        title: Incompatible installation variant
        status: 409
        detail: OBD alarm requires the OBD2_INSTALLATION installation variant.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    getSpeedingDetectionConfigurationExample:
      value:
        modified_at: '2023-07-19T14:33:01Z'
    problemsSpeedingDetectionNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'speeding-detection' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsMissingSpeedingDetectionFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'speeding-detection' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    getAnomalyDetectionConfigurationExample:
      value:
        modified_at: '2023-07-19T14:33:01Z'
    problemsAnomalyDetectionNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'anomaly-detection' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsMissingAnomalyDetectionFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'anomaly-detection' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    getAutoImmobilizerControlConfigurationExample:
      value:
        lock_conditions:
          use_ble_connection: true
          use_doors_status: true
          use_ble_signal_strength: false
          ble_signal_strength_threshold_in_dbm: -60
          pre_ride_start_lock_delay_in_seconds: 120
          ride_pause_lock_delay_in_seconds: 120
        modified_at: '2023-07-19T14:33:01Z'
    problemsAutoImmobilizerControlNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'auto-immobilizer-control' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    putAutoImmobilizerControlConfigurationExample:
      value:
        lock_conditions:
          use_ble_connection: true
          use_doors_status: true
          use_ble_signal_strength: false
          ble_signal_strength_threshold_in_dbm: -60
          pre_ride_start_lock_delay_in_seconds: 120
          ride_pause_lock_delay_in_seconds: 120
    problemsMissingAutoImmobilizerControlFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'auto-immobilizer-control' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsAutoImmobilizerControlOutOfRange:
      value:
        type: /problems/validation-error
        title: Validation Error
        status: 400
        detail: The property 'ble_signal_strength_threshold_in_dbm' is out of range.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsCapabilityMissingForAutoImmobilizerControlConfiguration:
      value:
        type: /problems/conflicting-resource
        title: Request cannot be processed due to a conflicting resource or resource state.
        status: 409
        detail: The 'use_doors_status' can only be true if the vehicle has the vehicle state capability 'DOORS_STATUS'.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsFirmwareVersionIncompatibleWithAutoImmobilizerControl:
      value:
        type: /problems/incompatible-firmware-version
        title: Incompatible firmware version
        status: 409
        detail: The firmware version is incompatible with auto immobilizer control. The minimum firmware version required is 2.17.0.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsTelematicsUnitModelIncompatibleWithAutoImmobilizerControl:
      value:
        type: /problems/incompatible-telematics-unit-model
        title: Incompatible telematics unit model
        status: 409
        detail: The auto immobilizer control feature is only supported by CloudBoxx 4G and 1020.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    getMaintenanceDataConfigurationExample:
      value:
        modified_at: '2023-07-19T14:33:01Z'
    problemsMaintenanceDataNotConfigured:
      value:
        type: /problems/resource-not-found
        title: The resource cannot be found.
        status: 404
        detail: The 'maintenance-data' feature is not configured for the vehicle.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsMissingMaintenanceDataFleetFeature:
      value:
        type: /problems/fleet-not-supported
        title: Request is not supported by the current Fleet.
        status: 400
        detail: The 'maintenance-data' feature is not activated for the vehicle's fleet.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleModelMaintenanceFeatureNotSupported:
      value:
        type: /problems/conflicting-resource
        title: Request cannot be processed due to a conflicting resource or resource state.
        status: 409
        detail: The vehicle model with ID '01F627BM9AAMF396YZK2AGZFY6' does not support maintenance data.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleModelUpdateMaintenanceFeatureNotSupported:
      value:
        type: /problems/conflicting-resource
        title: Request cannot be processed due to a conflicting resource or resource state.
        status: 409
        detail: Maintenance data is not available for the vehicle model with ID '01F627BM9AAMF396YZK2AGZFY6'. To access maintenance data, update your vehicle to the latest model version.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
    problemsVehicleInstallationVariantMaintenanceFeatureNotSupported:
      value:
        type: /problems/conflicting-resource
        title: Request cannot be processed due to a conflicting resource or resource state.
        status: 409
        detail: The installation variant 'CAN_INSTALLATION' does not support maintenance data.
        flow_id: 268de5ff-b700-4e1b-8ebc-b2d935782d93
  responses:
    featureConfigurationResponse:
      description: The current feature configuration.
      content:
        application/json:
          schema:
            type: object
            properties:
              tracking:
                $ref: '#/components/schemas/getResponse'
              damage_detection:
                $ref: '#/components/schemas/schemas-getResponse'
              driving_events:
                $ref: '#/components/schemas/DrivingEvents_schemas-getResponse'
              parking_events:
                $ref: '#/components/schemas/ParkingEvents_schemas-getResponse'
              smoke_detection:
                $ref: '#/components/schemas/response'
              auto_immobilizer_control:
                $ref: '#/components/schemas/AutoImmobilizerControl_schemas-getResponse'
              maintenance_data:
                $ref: '#/components/schemas/schemas-response'
              anomaly_detection:
                $ref: '#/components/schemas/AnomalyDetection_schemas-response'
              speeding_detection:
                $ref: '#/components/schemas/SpeedingDetection_schemas-response'
          examples:
            Example:
              $ref: '#/components/examples/getFeatureConfigurationExample'
    vehicleNotFoundErrorResponse:
      description: Vehicle was not found.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle not found:
              $ref: '#/components/examples/problemsVehicleNotFound'
    cloudboxxSettings404ErrorResponse:
      description: Vehicle was not found or does not support CloudBoxx settings.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle not found:
              $ref: '#/components/examples/problemsVehicleNotFound'
            Vehicle does not support CloudBoxx settings:
              $ref: '#/components/examples/problemsVehicleDoesNotSupportCloudboxxSettings'
    cloudboxxSettings409ErrorResponse:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsIncompatibleTelematicsUnitModelCloudBoxxSettings'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    featureOrVehicle404TrackingResponse:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsTrackingNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsVehicleNotFound'
    featureTrackingValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingTrackingFleetFeature'
            Property value out of range:
              $ref: '#/components/examples/problemsTrackingOutOfRange'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    vehicleInSetupErrorResponse:
      description: The vehicle is still in setup. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle in setup:
              $ref: '#/components/examples/problemsInSetup'
    trackingConflictErrorResponsePut:
      description: The vehicle is currently in a conflicting state. See examples for more details
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Operation cannot be performed due speeding detection is activated:
              $ref: '#/components/examples/problemsIncompatibleSpeedingDetection'
    trackingConflictErrorResponseDelete:
      description: The vehicle is currently in a conflicting state. See examples for more details
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
            Vehicle in setup:
              $ref: '#/components/examples/problemsInSetup'
            Operation cannot be performed due speeding detection is activated:
              $ref: '#/components/examples/problemsIncompatibleSpeedingDetection'
    noConnectionToVehicleErrorResponse:
      description: The vehicle did not establish a connection or it did not answer in time. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            No connection to vehicle:
              $ref: '#/components/examples/problemsTimeOut'
    getDamageDetectionConfigurationResponse:
      description: The current damage detection configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-getResponse'
          examples:
            Example:
              $ref: '#/components/examples/getDamageDetectionConfigurationResponseExample'
    featureOrVehicleDamageDetection404Response:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsDamageDetectionConfigurationNotFound'
            Vehicle not found:
              $ref: '#/components/examples/problemsVehicleNotFound'
    putDamageDetectionConfigurationResponse:
      description: The current damage detection configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-putResponse'
          examples:
            Example:
              $ref: '#/components/examples/putDamageDetectionConfigurationResponseExample'
    featureDamageDetectionValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingDamageDetectionFleetFeature'
            Property value out of range:
              $ref: '#/components/examples/problemsDamageDetectionOutOfRange'
            Vehicle model does not support feature:
              $ref: '#/components/examples/problemsDamageDetectionVehicleModelDoesNotSupportDamageDetection'
            Vehicle model does not support sensor installation variant:
              $ref: '#/components/examples/problemsDamageDetectionVehicleModelDoesNotSupportInstallationVariant'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    putDamageDetectionConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Conflicting operation:
              $ref: '#/components/examples/problemsDamageDetectionConflictingOperation'
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Missing vehicle data:
              $ref: '#/components/examples/problemsDamageDetectionVinOrLicensePlateNotFound'
            Conflicting resource:
              $ref: '#/components/examples/problemsDamageDetectionActivated'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsIncompatibleFirmwareVersion'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsIncompatibleTelematicsUnitModel'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    deleteDamageDetectionPendingResponse:
      description: The feature deactivation or activation cancellation has been triggered.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/deleteResponse'
          examples:
            Deactivate damage detection:
              $ref: '#/components/examples/deactivateDamageDetectionExample'
            Cancel damage detection activation:
              $ref: '#/components/examples/cancelDamageDetectionExample'
    deleteDamageDetectionConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Conflicting operation:
              $ref: '#/components/examples/problemsDamageDetectionConflictingOperation'
            Vehicle in setup:
              $ref: '#/components/examples/problemsInSetup'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    getDrivingEventsConfigurationResponse:
      description: The current driving events configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DrivingEvents_schemas-getResponse'
          examples:
            Example:
              $ref: '#/components/examples/getDrivingEventsConfigurationExample'
    featureOrVehicle404DrivingEventsResponse:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsDrivingEventsNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsVehicleNotFound'
    putDrivingEventsConfigurationResponse:
      description: The current driving events configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DrivingEvents_schemas-putResponse'
          examples:
            Example:
              $ref: '#/components/examples/putDrivingEventsConfigurationExample'
    putDrivingEventsConfigurationConflictResponse:
      description: Request cannot be processed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsIncompatibleFirmwareVersion'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsIncompatibleTelematicsUnitModel'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    featureDrivingEventsValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingDrivingEventsFleetFeature'
            Property value out of range:
              $ref: '#/components/examples/problemsDrivingEventsOutOfRange'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    getParkingEventsConfigurationResponse:
      description: The current parking events configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ParkingEvents_schemas-getResponse'
          examples:
            Example:
              $ref: '#/components/examples/getParkingEventsConfigurationExample'
    getCloudboxxSettingsResponse:
      description: The current settings of the CloudBoxx in the vehicle.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/cloudboxxSettingsResponseSchema'
          examples:
            Example:
              $ref: '#/components/examples/cloudboxxSettingsResponseExample'
    patchCloudboxxSettingsResponse:
      description: The settings of the CloudBoxx in the vehicle after the update.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/cloudboxxSettingsResponseSchema'
          examples:
            Example:
              $ref: '#/components/examples/cloudboxxSettingsResponseExample'
    featureOrVehicle404ParkingEventsResponse:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsParkingEventsNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsVehicleNotFound'
    putParkingEventsConfigurationResponse:
      description: The current parking events configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ParkingEvents_schemas-putResponse'
          examples:
            Example:
              $ref: '#/components/examples/putParkingEventsConfigurationExample'
    featureParkingEventsValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingParkingEventsFleetFeature'
            Property value out of range:
              $ref: '#/components/examples/problemsParkingEventsOutOfRange'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    featureParkingEventsConflictErrorResponse:
      description: Request cannot be processed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsIncompatibleFirmwareVersion'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsIncompatibleTelematicsUnitModel'
            Operation cannot be performed due anomaly detection is activated:
              $ref: '#/components/examples/problemsIncompatibleAnomalyDetection'
    tiltCalibrationValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingParkingEventsFleetFeature'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    cloudboxxSettingsValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Property value out of range:
              $ref: '#/components/examples/problemsCloudboxxSettingsBodyEmpty'
    tiltCalibrationConflictErrorResponses:
      description: Request cannot be processed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle in setup:
              $ref: '#/components/examples/problemsInSetup'
            Vehicle moved during calibration:
              $ref: '#/components/examples/problemsVehicleMovedDuringCalibration'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsIncompatibleFirmwareVersion'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsIncompatibleTelematicsUnitModel'
    getSmokeDetectionConfigurationResponse:
      description: The smoke detection is active for this vehicle.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/response'
          examples:
            Example:
              $ref: '#/components/examples/getSmokeDetectionConfigurationExample'
    featureOrVehicle404SmokeDetectionResponse:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsSmokeDetectionNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsNotFound'
    featureOrVehicleSpeedingDetection404Response:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsSpeedingDetectionNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsNotFound'
    getSpeedingDetectionConfigurationResponse:
      description: The speeding detection configuration status of this vehicle.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SpeedingDetection_schemas-response'
          examples:
            Example:
              $ref: '#/components/examples/getSpeedingDetectionConfigurationExample'
    featureOrVehicleAnomalyDetection404Response:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsAnomalyDetectionNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsNotFound'
    getAnomalyDetectionConfigurationResponse:
      description: The anomaly detection configuration status of this vehicle.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AnomalyDetection_schemas-response'
          examples:
            Example:
              $ref: '#/components/examples/getAnomalyDetectionConfigurationExample'
    featureSmokeDetectionValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingSmokeDetectionFleetFeature'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    featureObdAlarmValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    featureSpeedingDetectionValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingSpeedingDetectionFleetFeature'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    featureAnomalyDetectionValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingAnomalyDetectionFleetFeature'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    putSmokeDetectionConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsFirmwareVersionIncompatibleWithSmokeDetection'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsTelematicsUnitModelIncompatibleWithSmokeDetection'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    putObdAlarmConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsFirmwareVersionIncompatibleWithObdAlarm'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsTelematicsUnitModelIncompatibleWithObdAlarm'
            Incompatible installation variant:
              $ref: '#/components/examples/problemsInstallationVariantIncompatibleWithObdAlarm'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    putSpeedingDetectionConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    putAnomalyDetectionConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
    getMaintenanceDataConfigurationResponse:
      description: The current maintenance data configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-response'
          examples:
            Example:
              $ref: '#/components/examples/getMaintenanceDataConfigurationExample'
    featureOrVehicle404MaintenanceDataResponse:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsMaintenanceDataNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsNotFound'
    putMaintenanceDataValidationResponses:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingMaintenanceDataFleetFeature'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    putMaintenanceDataConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
            Vehicle model does not support feature:
              $ref: '#/components/examples/problemsVehicleModelMaintenanceFeatureNotSupported'
            Vehicle model needs update to support feature:
              $ref: '#/components/examples/problemsVehicleModelUpdateMaintenanceFeatureNotSupported'
            Cloudboxx installation variant not supported:
              $ref: '#/components/examples/problemsVehicleInstallationVariantMaintenanceFeatureNotSupported'
    putAutoImmobilizerControlConfigurationResponse:
      description: The current auto immobilizer control configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AutoImmobilizerControl_schemas-putResponse'
          examples:
            Example:
              $ref: '#/components/examples/putAutoImmobilizerControlConfigurationExample'
    getAutoImmobilizerControlConfigurationResponse:
      description: The current auto immobilizer control configuration
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AutoImmobilizerControl_schemas-getResponse'
          examples:
            Example:
              $ref: '#/components/examples/getAutoImmobilizerControlConfigurationExample'
    featureOrVehicle404AutoImmobilizerControlResponse:
      description: The given vehicle or feature was not found. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Feature not configured:
              $ref: '#/components/examples/problemsAutoImmobilizerControlNotConfigured'
            Vehicle not found:
              $ref: '#/components/examples/problemsNotFound'
    featureAutoImmobilizerControlValidationErrorResponse:
      description: Validation of request failed. See examples for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Missing fleet feature:
              $ref: '#/components/examples/problemsMissingAutoImmobilizerControlFleetFeature'
            Property value out of range:
              $ref: '#/components/examples/problemsAutoImmobilizerControlOutOfRange'
            Telematics brand not supported:
              $ref: '#/components/examples/problemsTelematicsBrandNotSupported'
    putAutoImmobilizerControlConflictResponses:
      description: Request cannot be processed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Doors status capability missing:
              $ref: '#/components/examples/problemsCapabilityMissingForAutoImmobilizerControlConfiguration'
            Vehicle setup not succeeded:
              $ref: '#/components/examples/problemsSetupNotSucceeded'
            Incompatible firmware version:
              $ref: '#/components/examples/problemsFirmwareVersionIncompatibleWithAutoImmobilizerControl'
            Incompatible telematics unit model:
              $ref: '#/components/examples/problemsTelematicsUnitModelIncompatibleWithAutoImmobilizerControl'
            Vehicle is shared:
              $ref: '#/components/examples/problemsVehicleSharedRequestRestrictedToOwner'
            Feature is not supported:
              $ref: '#/components/examples/problemsFeatureNotSupported'
    bulkConfigurationsReadSuccessResponse:
      description: A list of bulk configurations.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/bulkConfigurationsResponse'
    validationErrorResponse:
      description: Request validation failed. See example for more details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Validation Error:
              $ref: '#/components/examples/problemsValidationError'
    bulkConfigurationCreateSuccessResponse:
      description: The bulk configuration was created successfully.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/bulkConfigurationResponse'
          examples:
            Example:
              $ref: '#/components/examples/postBulkConfigurationSuccessResponseExample'
    bulkConfigurationReadSuccessResponse:
      description: The bulk configuration including its current detailed status.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/bulkConfigurationResponse'
          examples:
            Running example:
              $ref: '#/components/examples/getBulkConfigurationSuccessRunningResponse'
            Finished example:
              $ref: '#/components/examples/getBulkConfigurationSuccessFinishedResponse'
            Canceled example:
              $ref: '#/components/examples/getBulkConfigurationSuccessCanceledResponse'
    bulkConfigurationNotFoundErrorResponse:
      description: Bulk configuration was not found.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            Vehicle not found:
              $ref: '#/components/examples/problemsNotFound'
    getResponse:
      description: The current tracking configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/getResponse'
          examples:
            Example:
              value:
                time_interval_in_seconds: 120
                distance_interval_in_meters: 500
                heading_change_threshold_in_degrees: 60
                modified_at: '2023-07-19T14:33:01Z'
    putResponse:
      description: The current tracking configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/putResponse'
          examples:
            Example:
              value:
                time_interval_in_seconds: 120
                distance_interval_in_meters: 500
                heading_change_threshold_in_degrees: 60
  requestBodies:
    putDamageDetectionConfiguration:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-putRequest'
          examples:
            Example:
              $ref: '#/components/examples/putDamageDetectionConfigurationRequestExample'
    putDrivingEventsConfiguration:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DrivingEvents_schemas-putRequest'
          examples:
            Example:
              $ref: '#/components/examples/putDrivingEventsConfigurationExample'
    putParkingEventsConfiguration:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ParkingEvents_schemas-putRequest'
          examples:
            Example:
              $ref: '#/components/examples/putParkingEventsConfigurationExample'
    putAutoImmobilizerControlConfiguration:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AutoImmobilizerControl_schemas-putRequest'
          examples:
            Example:
              $ref: '#/components/examples/putAutoImmobilizerControlConfigurationExample'
    patchCloudboxxSettingsRequest:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/cloudboxxSettingsRequestSchema'
            properties:
              beeper_enabled:
                x-supported-cloudboxx-models: 3G, 4G, 1020
              dead_reckoning_position_enabled:
                x-supported-cloudboxx-models: 4G, 1020
          examples:
            Example:
              $ref: '#/components/examples/cloudboxxSettingsRequestExample'
    postBulkConfiguration:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/postBulkConfigurationRequestSchema'
          examples:
            Example:
              $ref: '#/components/examples/postBulkConfigurationRequestExample'
    put:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/putRequest'
          examples:
            Example:
              value:
                time_interval_in_seconds: 120
                distance_interval_in_meters: 500
                heading_change_threshold_in_degrees: 60
