openapi: 3.0.3
info:
  x-audience: external-partner
  x-api-id: 9fa093af-1ae4-4c92-a639-e9d754764522
  title: IoT Events API
  description: |
    This API provides raw telematics data for vehicles (hereinafter also called “assets”) in the format of an iot-events stream.
    
    ## Taxonomy
    
    The Iot Events API provides a stream of iot-events. An `iot-event` is a message holding information for a single vehicle for a specific time. 
    It may contain telematics data e.g., position, state, and driver information without any aggregation.
    
    We guarantee at-least-once delivery without strict timely ordering. The client must store the the "NextLink" from the response and use it to query more recent events.
    
    The Retention Period, meaning the period telematics data will be available on the RIO Platform after its arrival is currently set to **seven days**. We recommend consuming telematics data at least once a day since we do not guarantee to persist this data for any longer.
    
    ## Typical use cases
    
    * Retrieve iot-events after a specified offset (See description of `/iot-events`)
    
    * Retrieve all iot-events (See description of `/iot-events`)
    

  version: 1.3.2
  contact:
    name: Team Network
    email: rio_team_network@rio.cloud
    url: 'https://rio.cloud'
tags:
  - name: Events
    description: Receive new iot-events for vehicles
paths:
  '/iot-events':
    get:
      tags:
        - Events
      summary: Query for iot events.
      description: >-
        Returns all iot-events or only iot events that occurred after a specified offset.

        ## Data persistence
        
        Events are currently retained for up to 7 days.
        Hence, it is **recommended to consume telematics data at least daily**.

        ## Example queries

          * Get all iot-events for a RIO account. (Typically used when iot-events are queried for the first time.)
            `GET /iot-events`

          * Get all iot-events after the specified offset:
            `GET /iot-events?after=003JZ9J6G80123456789ABCDEF`
        
        ## How to query this API to get all events
        
        This API is paginated and will only return a limited number of iot-events. In order to retrieve all available iot-events, 
        you have to call this API repeatedly. For the initial request, we recommend to call this API **without the `after`** 
        query parameter. The response is a JSON object that in addition to the data contains the key-value-pairs
        
        * self-link: `_links.self.href="https://feed.iot-events.rio.cloud/iot-events?limit=1000"`
        
        * next-link: `_links.next.href="https://feed.iot-events.rio.cloud/iot-events?after=01FZ88J1PMVHDD0GGWH6570KCA&limit=1000"`
        

        The above next-link is just an example and will be different for your response. **Using the next-link for your subsequent request** allows you to continue streaming where you left off (the after 
        value is the cursor).</br>
        
        **When self-link and next-link are identical** there are no more iot-events available currently. **After a few minutes try 
        the same request again**. New messages should be available.
      parameters:
        - $ref: '#/components/parameters/after'
        - $ref: '#/components/parameters/limit'
      operationId: getIotEvents
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IotEventList'
        default:
          $ref: '#/components/responses/DefaultProblemResponse'
      security:
        - oauth2:
            - iot-events.read
x-zally-ignore:
  - 224
servers:
  - url: 'https://feed.iot-events.rio.cloud'
components:
  schemas:
    IotEvent:
      description: Iot event providing telematics data.
      properties:
        asset_id:
          type: string
          description: Asset
          example: 13762d30-1111-47c3-ab3e-fb3364f3592c
        account_id:
          type: string
          description: Account the asset belongs to
          example: 93c4e060-959c-4bc9-97b6-830bccd61530
        device_id:
          type: string
          description: ID of the source device sending the data.
          example: a9aac7a3-5ba0-4612-aa00-183967966bec
        device_type:
          type: string
          description: Type of the source device sending the data
          example: tbm3
          x-extensible-enum:
            - asset
            - cargobull
            - dako
            - fleet-tech
            - fleetboard
            - idem-telematics
            - man-webfleet
            - ocu3
            - pocket-driver-app
            - rfms #deprecated
            - scania-telematics
            - tbm2
            - tbm3
            - timocom
            - tour-execution-user-device
            - traffilog #deprecated
            - transics
            - truck-login-device
            - vcm
            - volvo-telematics
            - wabco-telematics
            - webfleet
            - webfleet-retrofit
            - cm4
            - krone
            - koegel-telematics
            - schwarzmueller-telematics
            - renault
            - co3
            - vwtb-autotrac
            - vwtb-sascar
            - vwtb-geotab
            - vwtb-infleet
            - vwtb-omnilink
            - vwtb-truckerassist
            - vwtb-vw
            - vwtb-ituran
            - vwtb-vwconnect
        eid:
          type: string
          description: >-
            event id, should start with the device_id concatenated with
            a unique id (usually send by the device)
          minLength: 1
          maxLength: 255
          example: >-
            9d53d511-42a8-4e05-9dd4-3e574a1fc0e4/tbm:1712040031/67/1541695228045/204
        occurred_at:
          type: string
          format: date-time
          description: >-
            ISO 8601 Timestamp (UTC) when the event was measured on the
            device
          example: '2019-08-09T10:12:46.057Z'
        driver_identification:
          type: string
          description: >-
            Identification of the vehicle driver (e.g., EU driver
            card number)
          minLength: 1
          maxLength: 255
          example: D MAN 00028 00
        driver_identification_type:
          type: string
          description: Identification type of the driver's identification
          example: eu_tachograph_card
          x-extensible-enum:
            - eu-tachograph-card
            - country-specific-driver-license
        trigger:
          type: string
          description: |
            Trigger of the iot event (what caused the event to be sent).
            
            Note: the trigger is not a good indicator to derive the state of the vehicle since e.g., `ignition-off` messages may be dropped sometimes.
            We recommend to use the `state` node to derive the state of the vehicle. For Example IotEvent → State → `ignition_on: true` tells you that at the time the message was created the ignition was ON.
            Generally speaking we recommend to interpolate between the regularly occurring values in the state node instead on relying on specific triggers.
          x-extensible-enum:
            - ignition-on
            - ignition-off
            - engine-start
            - engine-stop
            - driver-login
            - driver-logout
            - timer
            - pto-enabled
            - pto-disabled
            - tell-tale
            - driver-working-state-changed
            - drive-state-changed
            - trailer-state-change
            - charging-state-changed
            - other
          example: ignition-on
        position:
          $ref: '#/components/schemas/Position'
        state:
          $ref: '#/components/schemas/State'
        coupling_state:
          $ref: '#/components/schemas/CouplingState'
        driver_info:
          $ref: '#/components/schemas/DriverInfo'
        driver_state:
          $ref: '#/components/schemas/DriverState'
      required:
        - device_id
        - asset_id
        - account_id
        - eid
        - occurred_at
        - trigger

    Position:
      type: object
      description: |
        The position of the vehicle

        (Except the speed node, the position is aligned with the
        [W3C Geolocation API](https://www.w3.org/TR/geolocation-API/#position_interface).
        The speed is given in kilometers per hour to follow the standard for units used in telematics.)
      properties:
        latitude:
          type: number
          format: double
          description: >-
            latitude (north-south position) in decimal degrees (-90 ... +90)
          example: 51.935317
          minimum: -90
          maximum: 90
        longitude:
          type: number
          format: double
          description: >-
            longitude (east-west position) in decimal degrees (-180 ... +180)
          example: 10.145256
          minimum: -180
          maximum: 180
        altitude:
          type: number
          format: double
          description: height above sea level in meters
          example: 155.699
        accuracy:
          type: number
          format: double
          description: accuracy of the latitude and longitude in meters
          example: 51.93531799316406
        altitude_accuracy:
          type: number
          format: double
          description: accuracy of the altitude in meters
          example: 0.68
        heading:
          type: number
          format: double
          description: >-
            Direction in which the device is traveling in decimal degrees (0 … 360). Zero degrees represent true north,
            and the direction is determined clockwise.
          example: 183.6
          minimum: 0
          maximum: 360
        speed:
          type: number
          format: double
          description: >-
            velocity of the device in kilometers per hour (measured by the positioning system, e.g., GPS)
          example: 22.3
      required:
        - latitude
        - longitude

    State:
      type: object
      description: >
        The state (condition) of the vehicle
      properties:
        mileage:
          type: number
          format: double
          description: Mileage (from odometer) in kilometers (>0)
          example: 12345.34
          minimum: 0
        ignition_on:
          type: boolean
          description: 'State of the ignition (true = on, false = off)'
          example: true
        fuel_level:
          type: number
          format: double
          description: The fuel level in percent (0 ... 100)
          example: 92.45
          minimum: 0
          maximum: 100
        state_of_charge:
          type: number
          format: double
          description: The state of charge of the battery pack in percent (0 ... 100)
          example: 92.45
          minimum: 0
          maximum: 100
        charging_state:
          type: string
          description: |
            Indicates the charging state of the battery pack.
            not_charging - No charging.
            charging - Charging ongoing (AC or DC is unknown).
            charging_ac - AC charging ongoing.
            charging_dc - DC charging ongoing.
            charging_finished - Charging is finished.
            error - An error occurred when charging.
            not_available - Charging state is not available.
          example: charging
          x-extensible-enum:
            - not_charging
            - charging
            - charging_ac
            - charging_dc
            - charging_finished
            - error
            - not_available
        electric_range:
          type: number
          format: double
          description: Remaining driving range of electric vehicle in kilometers (>=0)
          example: 190
          minimum: 0
        engine_speed:
          type: number
          format: double
          description: Engines revolutions per minute (>0)
          example: 1398.45
          minimum: 0
        wheel_speed:
          type: number
          format: double
          description: Velocity measured on wheels in kilometers per hour (>=0)
          example: 80.675
          minimum: 0
        tacho_speed:
          type: number
          format: double
          description: >-
            Velocity measured on tachograph in kilometers per hour (>=0)
          example: 80.5
          minimum: 0
        fuel_consumption:
          type: number
          format: double
          description: >-
            Accumulated amount of fuel used during truck operation (l)
          example: 55.5
        accelerator_pedal:
          type: number
          format: double
          description: >-
            The ratio of actual position of the analogue engine speed/torque request input device
            (such as an accelerator pedal or throttle lever)
            to the maximum position of the input device (%) (0..255)
          example: 80
          minimum: 0
          maximum: 255
        weight_total:
          type: number
          format: double
          description: >-
            The total weight of the truck and all attached trailers (kg) (>=0)
          example: 33333.33
          minimum: 0
        pto_information:
          type: string
          x-extensible-enum:
            - no_pto
            - at_least_one
            - error
            - not_available
          description: >-
            Information related to the number of physical PTO drives engaged
          example: no_pto
        electronic_retarder_state:
          type: number
          format: int32
          description: >-
            State of the electronic retarder;
              0: no torque request (no braking)
              1-14: there is torque request (actual torque is in electronic_retarder_ratio)
              15: value not available
          example: 0
          minimum: 0
          maximum: 15
        electronic_retarder_ratio:
          type: number
          format: int32
          description: >-
            Actual braking torque of the retarder as a percentage of retarder
            configuration reference torque
          example: 80
          minimum: -125
          maximum: 125
        drive_state:
          type: string
          x-extensible-enum:
            - driving
            - standing
          description: >-
            Driving state indicating whether the truck is driving or standing.
          example: driving
        fuel_rate:
          type: number
          format: double
          description: >-
            The fuel rate (fuel consumption per hour) (l/h)
          example: 22.12
          minimum: 0
        instantaneous_fuel_economy:
          type: number
          format: double
          description: >-
            Instantaneous fuel economy (distance per liter) (km/l)
          example: 5.5
          minimum: 0
        engine_operation_time:
          type: number
          format: double
          description: >-
            Accumulated time of operation of engine (h)
          example: 42.5
          minimum: 0
        ambient_air_temperature:
          type: number
          format: double
          description: >-
            The Ambient air temperature in Celsius
          example: 42.5
          minimum: -273
        tires:
          type: array
          items:
            $ref: '#/components/schemas/TireState'
        hvess_energy_level:
          type: number
          format: double
          description: |
            The energy available in the vehicles High Voltage Energy Storage System (HVESS) for driving, measured in kilowatt-hours [kWh].
          example: 200.23
          minimum: 0.0
        hvess_current:
          type: number
          format: double
          description: |
            The current of the vehicle's High Voltage Energy Storage System (HVESS) in amperes [A].
            Positive values indicate charging, negative values indicate discharging.
          example: 10.43
        hvess_voltage:
          type: number
          format: double
          description: |
            The voltage of the HVESS [V]. The value changes with the state of charge.
          example: 823.23
          minimum: 0.0
        hvess_temperature:
          type: number
          format: double
          description: |
            The temperature of the HVESS in degrees Celsius [°C].
          example: 34.45
          minimum: -273.0
        remaining_charging_time:
          type: integer
          format: int64
          description: |
            Estimated time until the vehicle is fully charged, measured in seconds [s]. 
            Add this time to `occurred_at` to get the expected charge completion time.
          example: 327
          minimum: 0
        charging_connection_status:
          type: string
          description: |
            The status of the charging connection:
              - `connected`: The vehicle is connected to the charging station.
              - `disconnected`: The vehicle is disconnected from the charging station.
          x-extensible-enum:
            - connected
            - disconnected
          example: connected
        target_state_of_charge:
          type: number
          format: double
          description: >
            The target state of charge as a percentage [%] of the battery's maximum capacity.
          example: 80.0
          minimum: 0.0
          maximum: 100.0
        interior_temperature:
          type: number
          format: double
          description: >
            The interior temperature of the vehicle, measured in degrees Celsius [°C].
          example: 22.5
          minimum: -273.0
        total_electric_energy_used:
          type: number
          format: double
          description: >
            The total electric energy consumed over the vehicle's lifetime, measured in kilowatt-hours [kWh].
          example: 210500.23
          minimum: 0.0
        hvac_variant:
          type: string
          description: >
            The variant of the HVAC (Heating, Ventilation and Air Conditioning) system.
              - `manual` - HVAC system is heat-level controlled (user adjusts temperature, fan speed, and air distribution manually)
              - `automatic` - HVAC system is temperature-level controlled (system maintains a set temperature using sensors and automatic adjustments)
          x-extensible-enum:
            - manual
            - automatic
          example: automatic
        hvac_state:
          type: string
          description: >
            The current state of the HVAC system:
              - `on`: The HVAC system is active
              - `off`: The HVAC system is inactive
          x-extensible-enum:
            - on
            - off
          example: 'on'
        ams_state:
          type: string
          description: >
            The state of the Air Management System (AMS):
              - `on`: The AMS system is active
              - `off`: The AMS system is inactive
          x-extensible-enum:
            - on
            - off
          example: 'on'

    TireState:
      type: object
      description: State of a tire e.g., its temperature or pressure
      properties:
        mounting_position:
          type: object
          description: |
            Position where the tire is mounted on the vehicle.
            A position is defined by the mounting position of the axle, and the optional side.
            For regular tires the axle is in the range from 1 to 14, counting from the front of the vehicle to the rear. 
            A side must be provided additionally.
            For spare tires the axle is in the range from S1 to S14. A tire_location must NOT be provided.
          properties:
            axle:
              type: string
              example: 1
              x-extensible-enum:
                - 1
                - ...
                - 14
                - S1
                - ...
                - S14
            side:
              type: string
              x-extensible-enum:
                - left_outside
                - left_inside
                - right_inside
                - right_outside
              description: Mounting side on the axle. For single tire configurations, the correct values are left_inside and right_inside.
              example: left_outside
          required:
            - axle
        pressure:
          type: number
          format: double
          description: |
            Current temperature normalised pressure (cold inflation pressure, short: CIP) of the tire in kPa.
          example: 830.5
        temperature:
          type: number
          format: double
          description: Current temperature of the tire in °C.
          example: 30.5
      required:
        - mounting_position

    DriverInfo:
      type: object
      description: >
        Driver information recognized by the device (e.g., Card-In on
        an EU digital tachograph, mobile app login).

        Usually sent with a "driver_login"/"driver_logout" trigger
      properties:
        first_name:
          type: string
          description: First name of the driver
          maxLength: 255
          example: Max
        last_name:
          type: string
          description: Last name of the driver
          maxLength: 255
          example: Mustermann

    DriverState:
      type: object
      description: >
        Drivers working state and if available driving times
      properties:
        working_state:
          type: object
          properties:
            state:
              description: >-
                The parameters shall indicate the state of work of
                the driver, i.e., activity currently selected on the
                recording unit for the driver.
              type: string
              x-extensible-enum:
                - resting
                - available
                - working
                - driving
              example: driving
          required:
            - state
        driving_and_resting_details:
          description: >-
            Tachograph data based on
            https://www.iso.org/standard/57315.html
          type: object
          properties:
            specification:
              type: string
              description: >-
                Identifier for the specification the data adheres to
              x-extensible-enum:
                - 'iso_16844-7:2015'
                - 'iso_16844-7:2004'
              example: 'iso_16844-7:2015'
            source:
              type: string
              description: Free text identifier of the source for the data
              maxLength: 255
              example: SE5000
            continuous_driving_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be computed as the current
                accumulated driving times of a particular driver, as
                defined by legal regulation. (Given in minutes)
            cumulative_break_time:
              type: integer
              format: int32
              description: >-
                This parameter shall indicate the uninterrupted
                break time for driver 1 as defined by legal
                regulation. (Given in minutes)
            current_duration_of_selected_activity:
              type: integer
              format: int32
              description: >-
                This parameter shall indicate the current duration
                of the selected activity, since selected, and, which
                may be the current driving period, availability
                period, rest period, or work period. (Given in
                minutes)
            cumulated_driving_time_previous_and_current_week:
              type: integer
              format: int32
              description: >-
                This parameter shall be computed as the current
                accumulated driving times of driver 1 (driver) for
                the previous and the current week. (Given in
                minutes)
            end_of_last_daily_rest_period:
              type: integer
              format: int64
              description: >-
                This parameter shall be the end of the last daily
                rest period of driver 1, as computed by the
                tachograph using driver 1 card data. (Given as unix
                timestamp)
            end_of_last_weekly_rest_period:
              type: integer
              format: int64
              description: >-
                This parameter shall be the end of the last weekly
                rest period of driver 1, as computed by the
                tachograph using driver 1 card data. (Given as unix
                timestamp)
            end_of_second_last_weekly_rest_period:
              type: integer
              format: int64
              description: >-
                This parameter shall be the end of the second last
                weekly rest period of driver 1, as computed by the
                tachograph using driver 1 card data. (Given as unix
                timestamp)
            current_daily_driving_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be the current daily driving
                time of driver 1, as computed by the tachograph
                using driver 1 card data. (Given in minutes)
            current_weekly_driving_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be the current weekly driving
                time of driver 1, as computed by the tachograph
                using driver 1 card data. (Given in minutes)
            time_left_until_new_daily_rest_period:
              type: integer
              format: int32
              description: >-
                This parameter shall be the calendar time left until
                driver 1 shall start a new daily rest period. (Given
                in minutes)
            time_left_until_new_weekly_rest_period:
              type: integer
              format: int32
              description: >-
                This parameter shall be the calendar time left until
                driver 1 shall start a new weekly rest period.
                (Given in minutes)
            number_of_times_9h_daily_driving_times_exceeded:
              type: integer
              format: int32
              description: >-
                This parameter shall be the number of times the
                driver exceeded 9 h daily driving time in the
                current week.
            cumulative_uninterrupted_rest_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be the cumulative uninterrupted
                rest period for driver 1 since last fulfilled daily
                rest. It shall be incremented each minute of
                uninterrupted rest time. (Given in minutes)
            minimum_daily_rest:
              type: integer
              format: int32
              description: >-
                This parameter shall be the minimum daily rest the
                driver 1 needs to do to fulfil an ongoing or
                approaching daily rest period. (Given in minutes)
            minimum_weekly_rest:
              type: integer
              format: int32
              description: >-
                This parameter shall be the minimum weekly rest the
                driver 1 needs to do to fulfil an ongoing or
                approaching weekly rest period. It shall be set to
                regular or reduced weekly rest period plus
                compensation hours, if any. (Given in minutes)
            maximum_daily_period:
              type: integer
              format: int32
              description: >-
                This parameter shall be set to the maximum allowed
                calendar time between the end of two daily rests
                (the daily period) for driver 1. (Given in hours)
            maximum_daily_driving_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be the maximum daily driving
                time for driver 1. (Given in hours)
            number_of_used_reduced_daily_rest_periods:
              type: integer
              format: int32
              description: >-
                This parameter shall be the number of times the
                driver has used reduced daily rest times since
                previous weekly rest period.
            remaining_current_driving_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be the maximum remaining
                driving time left to next required break/rest
                according to what is defined by regulation. (Given
                in minutes)
            remaining_driving_time_on_current_shift:
              type: integer
              format: int32
              description: >-
                This parameter shall be the maximum remaining
                driving time left on current day for driver 1.
                (Given in minutes)
            remaining_driving_time_of_current_week:
              type: integer
              format: int32
              description: >-
                This parameter shall be set to the maximum remaining
                driving time left of current week for driver 1.
                (Given in minutes)
            remaining_2_weeks_driving_time:
              type: integer
              format: int32
              description: >-
                This parameter shall be set to the maximum remaining
                driving time left of current week and next week for
                driver 1. (Given in minutes)
            time_left_until_next_driving_period:
              type: integer
              format: int32
              description: >-
                This parameter shall be set to the minimum time left
                until driver 1 can start next driving period. (Given
                in minutes)
            duration_of_next_driving_period:
              type: integer
              format: int32
              description: >-
                This parameter shall be set to the maximum duration
                of next driving period for driver 1. (Given in
                minutes)
            duration_of_next_break_rest:
              type: integer
              format: int32
              description: >-
                This parameter shall be set to the minimum duration
                of next break/rest for driver 1. (Given in minutes)
            remaining_time_of_current_break_rest:
              type: integer
              format: int32
              description: >-
                This parameter shall indicate the remaining 10 h
                driving times.
            remaining_reduced_daily_rest_periods:
              type: integer
              format: int32
              description: >-
                This parameter shall indicate the remaining
                reduced daily rest periods.
            unknown_periods:
              type: boolean
              description: >-
                This parameter shall indicate the unknown
                periods.
            data_availability_on_driver_card:
              type: boolean
              description: >-
                This parameter shall indicate the data
                availability on driver card.
            weekly_rest_period_calculation_status:
              type: boolean
              description: >-
                This parameter shall indicate the weekly rest
                period calculation status.
            multi_manning_detection_status:
              type: boolean
              description: >-
                This parameter shall indicate the multi-manning
                detection status.
            time_overlap_detection_status:
              type: boolean
              description: >-
                This parameter shall indicate the time overlap
                detection status.
          required:
            - specification
            - source
      required:
        - working_state
    CouplingState:
      type: object
      description: >
        Coupling state of the asset
      properties:
        pulled_trailers:
          description: >-
            List of trailers that are currently pulled by the asset.

            If `pulled_trailers` is `null` or `undefined`, the asset does not provide information on pulled trailers.
            If `pulled_trailers` is an empty list, the asset is providing the information that it is **NOT** pulling any trailer currently.
          type: array
          items:
            $ref: '#/components/schemas/PulledTrailer'
    PulledTrailer:
      type: object
      description: >
        Trailer pulled by the asset
      properties:
        trailer_order_no:
          type: number
          description: >-
            Trailer number from 1 to 5, 1 being closest to the truck (as defined in rFMS v4.0.0)
          example: 1
        identification_type:
          description: |
            The identification type of the trailer.
            The type can be used to interpret the `partial_identification_data`.
          type: string
          x-extensible-enum:
            - vin
          example: vin
        partial_identification_data:
          type: string
          description: >-
            Partial identification data of the trailer.
            The data can be any substring of the full identification.
          example: 678901234
    IotEventList:
      type: object
      required: [ items, _links ]
      properties:
        items:
          type: array
          nullable: false
          items:
            $ref: '#/components/schemas/IotEvent'
        _links:
          $ref: '#/components/schemas/PaginationLinks'
    PaginationLinks:
      type: object
      required: [ self, next ]
      description: |
        All links are (absolute) URLs.
        * The `self` link shows the current page.
        * The `next` link is always present and will return further iot events if there are unfetched events left,
        or will return an empty list of items if there are no more iot events at this time.
        Use the `next` link for future requests to retrieve only new events.
      properties:
        self:
          $ref: '#/components/schemas/SelfLink'
        next:
          $ref: '#/components/schemas/NextLink'
    SelfLink:
      type: object
      required: [ href ]
      properties:
        href:
          type: string
          example: 'https://feed.iot-events.rio.cloud/iot-events?after=01FZ88J1PMVHDD0GGWH6570KCA&limit=1000'
    NextLink:
      type: object
      required: [ href ]
      properties:
        href:
          type: string
          example: 'https://feed.iot-events.rio.cloud/iot-events?after=01G8BADTRDN7AF5NWMP5H2CYSM&limit=1000'
  parameters:
    after:
      in: query
      name: after
      required: false
      description: Return all events which occurred after the event with the id specified in this parameter. Can be omitted to read all events from the start.
      schema:
        type: string
    limit:
      in: query
      name: limit
      required: false
      description: Specifies the maximum number of events to retrieve in the response.
      schema:
        type: integer
        default: 1000
        minimum: 1
        maximum: 1000
  responses:
    DefaultProblemResponse:
      description: >-
        error occurred - see status code and problem object for more information
      content:
        application/problem+json:
          schema:
            $ref: 'https://opensource.zalando.com/problem/schema.yaml#/Problem'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: 'https://auth.iam.rio.cloud/oauth/token'
          scopes:
            iot-events.read: Read access to the iot event feed