openapi: 3.0.3
info:
  title: WLWBX REST API
  version: 0.121.5
  description: >-
    # White Label Wallbox REST API


    ## Date and Time


    Date time is identified by

    ```

    type: string

    format: date-time

    ```


    and is represented according to ISO 8601 in the following format:


    Year, months, days, separator "T", hours, minutes and seconds and optionally a time zone designator which is a time
    offset from UTC.


    Date and time only:

    YYYY-MM-DDThh:mm:ss

    2022-07-16T19:20:30


    Date, time and time zone designator (TZD):

    YYYY-MM-DDThh:mm:ssTZD

    2022-07-16T19:20:30+01:00


    For details see https://en.wikipedia.org/wiki/ISO_8601
  contact:
    name: eSystems
    url: https://www.esystems-mtg.de
servers:
  - url: http://<wallbox-ip>/api/v2
    description: Wallbox (local network)
paths:
  /charging/state:
    get:
      summary: Charging state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargingState'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-state
      description: Get the charging state
  /charging/direct-authorization:
    get:
      summary: Control charging
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: string
                    enum:
                      - allowed
                      - denied
                      - unknown
                required:
                  - value
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-direct-authorization
      description: Get the direct charging authorization information
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Direct charging authorization
      operationId: put-charging-direct-authorization
      description: Allow or deny charging
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                value:
                  type: string
                  enum:
                    - allow
                    - deny
              required:
                - value
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
  /charging/free-charging:
    get:
      summary: Free charging mode
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-free-charging
      description: Get the free charging information
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Free charging mode
      operationId: put-charging-free-charging
      description: Allow or deny free charging
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
    parameters: []
  /charging/limits:
    get:
      summary: Get charging limits
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargingLimits'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-limits
      description: Get charging limits
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set charging limits
      description: Set charging limits
      operationId: put-charging-limits
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargingLimits'
        description: Set charging limits
      security:
        - JWT-technician: []
        - JWT-user: []
  /charging/restrictions:
    get:
      summary: Get active charging restrictions
      description: Get active charging restrictions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChargingRestriction'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-charging-restrictions
      security:
        - JWT-technician: []
        - JWT-user: []
  /charging/last-started-session:
    get:
      summary: Get infos about the last started charging session
      description: Get infos about the last started charging session
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LastStartedSession'
        '204':
          description: No content
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-charging-last-started-session
    parameters: []
  /charging/user-limit-current:
    get:
      summary: Get user limit of charging current
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Current'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-user-limit-current
      description: Get user limit of charging current
      security:
        - JWT-technician: []
    put:
      summary: Set user limit of charging current
      operationId: put-charging-user-limit-current
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Current'
        description: ''
      description: Set user limit of charging current
      security:
        - JWT-technician: []
  /charging/user-limit-power:
    get:
      summary: Get user limit of charging power
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Power'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-user-limit-power
      description: Get user limit of charging power
      security:
        - JWT-technician: []
    put:
      summary: Set user limit of charging power
      operationId: put-charging-user-limit-power
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Power'
        description: ''
      description: Set user limit of charging power
      security:
        - JWT-technician: []
  /dashboard/charging-curve:
    get:
      summary: Get charging curve data
      description: Get charging curve data
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargingCurve'
        '204':
          description: No content
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-dashboard-charging-curve
      security:
        - JWT-technician: []
        - JWT-user: []
  /charging/lifetime-stats:
    get:
      summary: Get lifetime statistics
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalEnergy:
                    type: number
                    description: Total energy amount in [Wh]
                  totalChargingTime:
                    type: integer
                    description: Total charging time in [second]
                required:
                  - totalEnergy
                  - totalChargingTime
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-charging-lifetime-stats
      description: Get accumulated wallbox lifetime statistics
    parameters: []
  /charging/max-current-per-phase/required:
    get:
      summary: Get max current per phase is required
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Required'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-max-current-per-phase-required
      description: Returns true if max current per phase is required
    parameters: []
  /charging/max-current-per-phase:
    get:
      summary: Get max current per phase
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaxPhaseCurrent'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-max-current-per-phase
      description: Get max current per phase
      security:
        - JWT-technician: []
    parameters: []
  /charging/max-current-per-phase/selected:
    get:
      summary: Get selected max phase current
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaxPhaseCurrent'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-max-current-per-phase-selected
      description: Get selected max phase current
      security:
        - JWT-technician: []
    put:
      summary: Set selected max phase current
      operationId: put-charging-max-current-per-phase-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaxPhaseCurrent'
        description: ''
      description: Set selected max phase current
      security:
        - JWT-technician: []
    parameters: []
  /charging/phase-type/required:
    get:
      summary: Get phase type is required
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Required'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-phase-type-required
      description: Returns true if phase type configuration is required
    parameters: []
  /charging/phase-type:
    get:
      summary: Get phase types
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PhaseType'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-phase-type
      description: Get phase types
      security:
        - JWT-technician: []
    parameters: []
  /charging/phase-type/selected:
    get:
      summary: Get selected phase type
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhaseType'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-phase-type-selected
      description: Get selected phase type
      security:
        - JWT-technician: []
    put:
      summary: Set selected phase type
      operationId: put-charging-phase-type-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhaseType'
        description: ''
      description: Set phase type
      security:
        - JWT-technician: []
    parameters: []
  /charging/off-peak/available:
    get:
      summary: Get off-peak charging available
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Available'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-off-peak-available
      description: Get available state of the off-peak time charging functionality.
      security:
        - JWT-technician: []
    parameters: []
  /charging/off-peak/enabled:
    get:
      summary: Get off-peak charging enabled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-off-peak-enabled
      description: Get enabled state of the off-peak time charging functionality.
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Put off-peak charging enabled
      operationId: put-charging-off-peak-enabled
      description: |-
        Set enabled state of the off-peak time charging functionality.
        Triggered events:
        - offPeakEnabledUpdate
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      security:
        - JWT-technician: []
  /charging/off-peak/plans:
    get:
      summary: Get off-peak charging plans
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OffPeakTimeChargingPlans'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-off-peak-plans
      description: Get off-peak time charging plans.
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Put off-peak charging plans
      operationId: put-charging-off-peak-plans
      description: |-
        Set off-peak time charging plans.
        Triggered events:
        - offPeakTimeChargingPlanUpdate
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OffPeakTimeChargingPlans'
      security:
        - JWT-technician: []
  /charging/off-peak/randomised-delay:
    get:
      summary: Get off-peak randomised delay
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RandomisedDelay'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-off-peak-randomised-delay
      description: Get off-peak time randomised delay.
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Put off-peak randomised delay
      operationId: put-charging-off-peak-randomised-delay
      description: |-
        Set off-peak time randomised delay.
        Triggered events:
        - randomisedDelayUpdate
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RandomisedDelay'
      security:
        - JWT-technician: []
  /charging/statistic:
    get:
      summary: Get last charging sessions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChargingSession'
        '204':
          description: No Content
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-charging-statistic
      description: Get last charging sessions
      security:
        - JWT-technician: []
        - JWT-user: []
  /charging/statistic/export:
    get:
      summary: Get an export of charging sessions
      responses:
        '200':
          description: OK
          content:
            text/csv:
              schema:
                type: string
                format: binary
          headers: {}
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
      description: Get an export of charging sessions
      operationId: get-charging-statistic-export
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Disposition
          description: attachment; filename="charging_sessions.csv"
    parameters: []
  /system/languages/selected:
    get:
      summary: Get selected language
      description: Get selected language
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectedLanguage'
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-system-languages-selected
    parameters: []
    put:
      summary: Set the selected language
      description: Set the selected language
      operationId: put-system-languages-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectedLanguage'
      security:
        - JWT-technician: []
        - JWT-user: []
  /system/countries/selected:
    get:
      summary: Get selected country
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Country'
        '204':
          description: No Content
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-system-countries-selected
      description: Returns the selected country. Returns 204 if no country is selected.
    parameters: []
    put:
      summary: Set the selected country
      description: Set the selected country
      operationId: put-system-countries-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Country'
      security:
        - JWT-technician: []
  /system/temperature-units/selected:
    get:
      summary: Get selected temperature unit
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemperatureUnit'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-system-temperature-units-selected
      description: Get selected temperature unit
      parameters: []
      security:
        - JWT-user: []
        - JWT-technician: []
    put:
      summary: Set the selected temperature unit
      operationId: put-system-temperature-units-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemperatureUnit'
      description: Set the selected temperature unit
      security:
        - JWT-technician: []
    parameters: []
  /system/distance-units/selected:
    get:
      summary: Get selected distance unit
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistanceUnit'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-system-distance-units-selected
      description: Get selected distance unit
      parameters: []
      security:
        - JWT-technician: []
    put:
      summary: Set the distance unit
      operationId: put-system-distance-units-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistanceUnit'
      description: Set the distance unit
      security:
        - JWT-technician: []
    parameters: []
  /system/target-soc-time-units/selected:
    get:
      summary: Get selected target SoC time
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TargetSoCTimeUnit'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-system-target-soc-time-units-selected
      description: Get selected target SoC time unit
      parameters: []
      security:
        - JWT-technician: []
    put:
      summary: Set the target SoC time unit
      operationId: put-system-target-soc-time-units-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TargetSoCTimeUnit'
      description: Set the target SoC time unit
      security:
        - JWT-technician: []
    parameters: []
  /system/update/available:
    get:
      summary: Get system update settings available
      operationId: get-system-update-available
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Available'
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Get the state if its possible to change the update settings.
    parameters: []
  /system/update/auto-download:
    get:
      summary: Get automatic update download setting
      operationId: get-system-update-auto-download
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      description: Setting whether wallbox automatically download update file
    parameters: []
    put:
      summary: Set automatic update download setting
      operationId: put-system-update-auto-download
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Setting whether wallbox automatically download update file

        Triggered events:
        - automaticUpdateDownloadUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      security:
        - JWT-technician: []
  /system/update/auto-update:
    get:
      summary: Get automatic update setting
      operationId: get-system-update-auto-update
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      description: Setting whether wallbox automatically install update file
    parameters: []
    put:
      summary: Set automatic update setting
      operationId: put-system-update-auto-update
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Setting whether wallbox automatically install update file

        Triggered events:
        - automaticUpdateUpdate
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
  /system/update/info:
    get:
      summary: Get info about software updates of the Wallbox
      operationId: get-system-update-info
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateInfo'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
      description: >-
        Get information about the last executed update, an available update or the running update.

        When one of those update infos is available the corresponding sub-object is contained in the schema. The
        sub-object must have a version property at least.
    parameters: []
  /system/update/upload:
    post:
      summary: Upload file for manual update
      operationId: post-system-update-upload
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. User is logged in but with wrong role.
        '404':
          description: Not Found. Route not found.
        '408':
          description: Request Timeout. Server would like to shut down this unused connection.
        '413':
          description: Request Entity Too Large. The file size is too big.
        '415':
          description: Unsupported Media Type. Invalid content-type.
        '500':
          description: Internal Server Error. Error while handling file by server.
      parameters: []
      security:
        - JWT-technician: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
            examples: {}
        description: ''
      description: |-
        Upload file for manual software update. After file upload, update process gets started.

        Triggered events:
        - updateProgressUpdate
        - updateInfoUpdate
    parameters: []
  /system/update/download:
    post:
      summary: Download update file from backend
      operationId: post-system-update-download
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. User is logged in but with wrong role.
        '404':
          description: Not Found
        '500':
          description: Internal Server Error. Error while handling file by server.
      security:
        - JWT-technician: []
        - JWT-user: []
      parameters: []
      description: |-
        Download an available update file from backend.

        Triggered events:
        - updateProgressUpdate
        - updateInfoUpdate
  /system/update/exec:
    post:
      summary: Start manual update
      operationId: post-system-update-exec
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. User is logged in but with wrong role.
        '404':
          description: Not Found. Route not found.
        '500':
          description: Internal Server Error. Error while handling file by server.
      parameters: []
      security:
        - JWT-technician: []
        - JWT-user: []
      description: |-
        Starts update of existing file.

        Triggered events:
        - updateProgressUpdate
        - updateInfoUpdate
    parameters: []
  /system/update/progress:
    get:
      summary: Get the software update progress
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProgress'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      operationId: get-system-update-progress
      description: Get the state of a running software update.
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /system/update/uploaded:
    post:
      summary: Internal - Start update
      operationId: post-system-update-uploaded
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. User is logged in but with wrong role.
        '404':
          description: Not Found. Route not found.
        '408':
          description: Request Timeout. Server would like to shut down this unused connection.
        '413':
          description: Request Entity Too Large. The file size is too big.
        '415':
          description: Unsupported Media Type. Invalid content-type.
        '500':
          description: Internal Server Error. Error while handling file by server.
      parameters: []
      security:
        - JWT-technician: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                upload_file_name:
                  type: string
                upload_content_type:
                  type: string
                upload_tmp_path:
                  type: string
                upload_file_size:
                  type: string
                upload_file_md5:
                  type: string
                upload_file_sha1:
                  type: string
            examples: {}
        description: ''
      tags:
        - Internal
      description: Upload file for manual software update. After file upload, update process gets started.
    parameters: []
  /system/led/automatic-luminosity-enabled:
    get:
      summary: Get led automatic luminosity configuration enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-led-automatic-luminosity-enabled
      description: Check if led automatic luminosity configuration is enabled
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Set led automatic luminosity configuration enabled status
      operationId: put-system-led-automatic-luminosity-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set led automatic luminosity configuration enabled status
      security:
        - JWT-technician: []
  /system/led/luminosity:
    get:
      summary: Get led luminosity value
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Luminosity'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-led-luminosity
      security:
        - JWT-technician: []
      description: Get configured led luminosity
    parameters: []
    put:
      summary: Set led luminosity value
      operationId: put-system-led-luminosity
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Luminosity'
      description: Set led luminosity value
      security:
        - JWT-technician: []
  /system/errors:
    get:
      summary: Get system errors
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-errors
      description: Get system errors
      security:
        - JWT-technician: []
        - JWT-user: []
    delete:
      summary: Delete all errors
      operationId: delete-system-errors
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-user: []
        - JWT-technician: []
      description: |-
        Delete all errors

        Triggered events:
        - errorsUpdate
  /system/errors/export:
    get:
      summary: Export system errors log file
      responses:
        '200':
          description: OK
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-errors-export
      description: Get a log file of system errors
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /system/energy-saving:
    get:
      summary: Get energy saving enabled status
      description: Get energy saving enabled status
      operationId: get-system-energy-saving
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set energy saving enabled status
      operationId: put-system-energy-saving
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set energy saving enabled status
      security:
        - JWT-technician: []
  /system/energy-saving/available:
    get:
      summary: Check if Energy Saving is available
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Available'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-energy-saving-available
      description: |-
        Check if Energy Saving is available
        Triggered events:
        - EnergySavingAvailableUpdate
      security:
        - JWT-technician: []
  /system/factory-reset/exec:
    post:
      summary: Execute a factory reset
      description: |-
        Execute a factory reset.
        If confirmed = true at the response then the system will reboot.
        If confirmed = false at the response then the system will not reboot.
      operationId: post-system-factory-reset-exec
      responses:
        '200':
          description: The response body tells if the request has been confirmed or rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Confirmed'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
  /system/installer-reset/exec:
    post:
      summary: Execute an installer reset
      description: |-
        Execute an installer reset.
        If confirmed = true at the response then the system will reboot.
        If confirmed = false at the response then the system will not reboot.
      operationId: post-system-installer-reset-exec
      responses:
        '200':
          description: The response body tells if the request has been confirmed or rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Confirmed'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
  /system/enable-calibration-law/available:
    parameters: []
    get:
      summary: Get Enable calibration law Available
      operationId: get-system-enable-calibration-law-available
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Available'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Returns if enable calibration law is available at the system.
      security:
        - JWT-user: []
        - JWT-technician: []
  /system/enable-calibration-law/enable:
    get:
      summary: Get enable calibration law
      description: Get calibration law config enabled.
      operationId: get-system-enable-calibration-law-enable
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-user: []
        - JWT-technician: []
    put:
      summary: Enable calibration law
      description: Enable calibration law config.
      operationId: put-system-enable-calibration-law-enable
      responses:
        '200':
          description: The response body tells if the request has been confirmed or rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Confirmed'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
    parameters: []
  /system/grid-related-information:
    get:
      summary: Get grid related information
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridInformation'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-grid-related-information
      security:
        - JWT-user: []
        - JWT-technician: []
      description: Get grid related information
    parameters: []
  /system/electronic-typeplate:
    get:
      summary: Get electronic typeplate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElectronicTypeplate'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-electronic-typeplate
      security:
        - JWT-user: []
        - JWT-technician: []
      description: |-
        Get electronic typeplate

        Triggered events:
        - electronicTypeplateUpdate 
    parameters: []
  /system/ground-monitoring:
    get:
      summary: Get Ground Monitoring enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-ground-monitoring
      description: 'Check if Ground Monitoring is enabled '
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set Ground Monitoring enabled status
      operationId: put-system-ground-monitoring
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set Ground Monitoring enabled status
      security:
        - JWT-technician: []
    parameters: []
  /system/ground-monitoring/available:
    get:
      summary: Check if Ground Monitoring is available
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Available'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-ground-monitoring-available
      description: Check if Ground Monitoring is available
      security:
        - JWT-technician: []
        - JWT-user: []
  /system/onboarding:
    get:
      summary: Get onboarding state
      operationId: get-system-onboarding
      description: Gets information if onboarding has to be done.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Finished'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
    put:
      summary: Set onboarding finished
      operationId: put-system-onboarding
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Confirmed'
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: >-
        Sets information that onboarding is finished by client. Server responds if all neccessary onboarding steps are
        executed. Otherwise onboarding has to be redone.
      security:
        - JWT-technician: []
    parameters: []
  /system/disclaimer/confirmed:
    get:
      summary: Get disclaimer confirmation
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Confirmed'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-disclaimer-confirmed
      description: Get the information if the user has confirmed the disclaimer.
      security:
        - JWT-user: []
    parameters: []
    put:
      summary: Confirm the disclaimer
      operationId: put-system-disclaimer-confirmed
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Confirm the disclaimer as the standard user.
      security:
        - JWT-user: []
  /system/password/user:
    put:
      summary: Set new password for user
      operationId: put-system-password-user
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: >-
            A password change validation error has occured. The error is reported according to the schema of the
            response body:


            "property": "password"


            "error": "passwordInvalid"


            "property": "oldPassword"


            "error": "passwordInvalid"
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Set new password for user.
      security:
        - JWT-user: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChange'
    parameters: []
  /system/password/technician:
    put:
      summary: Set new password for technician
      operationId: put-system-password-technician
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: >-
            A password change validation error has occured. The error is reported according to the schema of the
            response body:


            "property": "password"


            "error": "passwordInvalid"
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Set new password for technician.
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChange'
    parameters: []
  /system/energy-meter:
    get:
      summary: Get Energy Meter information
      operationId: get-system-energy-meter
      description: |-
        Get Energy Meter information

        Triggered events:
        - energyMeterUpdate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnergyMeter'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
  /system/socket-outlet:
    get:
      summary: Get socket outlet information
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SocketOutletRead'
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-socket-outlet
      description: Get socket outlet information
    put:
      summary: Set socket outlet settings
      operationId: put-system-socket-outlet
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SocketOutletWrite'
      description: |-
        Set socket outlet settings

        Triggered events:
        - socketOutletUpdate
      security:
        - JWT-technician: []
  /system/date-time:
    get:
      summary: Get current date-time info
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DateTimeInfo'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-date-time
      security:
        - JWT-user: []
        - JWT-technician: []
      description: Get current date-time info
    put:
      summary: Set date-time settings
      operationId: put-system-date-time
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: |
        Set date-time settings

        Triggered events:
        - dateTimeUpdate
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DateTimeInfo'
  /system/date-time/date-format:
    get:
      summary: Get the date format
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DateFormat'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-date-time-date-format
      description: Get the date format
      security:
        - JWT-user: []
        - JWT-technician: []
    put:
      summary: Set the date format
      operationId: put-system-date-time-date-format
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Set the date format

        Triggered events:
         - dateFormatUpdate
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DateFormat'
  /system/date-time/time-sources/selected:
    get:
      summary: Get selected time source
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeSource'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-date-time-time-sources-selected
      description: Get selected time source
      security:
        - JWT-user: []
        - JWT-technician: []
  /system/device-state:
    get:
      summary: Get device state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceState'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-device-state
      description: Get device state
      security:
        - JWT-user: []
        - JWT-technician: []
    parameters: []
  /system/device-temperatures:
    get:
      summary: Get device temperatures
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceTemperatures'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-device-temperatures
      description: Get temperatures of different locations inside the device
      security:
        - JWT-user: []
        - JWT-technician: []
  /system/relais-switch/enabled:
    get:
      summary: Get relais switch enabled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-relais-switch-enabled
      description: Get relais switch enabled
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set relais switch enabled
      operationId: put-relais-switch-enabled
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Set relais switch enabled

        Triggered events:
         - relaisSwitchEnabledUpdate
         - relaisSwitchStateUpdate
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
  /system/relais-switch/state:
    get:
      summary: Get relais switch state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelaisSwitchStateRead'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-relais-switch-state
      description: Get relais switch state
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
    put:
      summary: Set relais switch state
      operationId: put-system-relais-switch-state
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Set relais switch state

        Triggered events:
         - relaisSwitchStateUpdate
      security:
        - JWT-technician: []
        - JWT-user: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelaisSwitchStateWrite'
  /system/heart-beat:
    put:
      summary: Signal heart beat
      operationId: put-system-heart-beat
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Signal heart beat to indicate that the client is still in use.
      security:
        - JWT-user: []
        - JWT-technician: []
  /system/certificates:
    get:
      summary: Get information about certificates
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Certificates'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-certificates
      description: Get information about certificates
      security:
        - JWT-technician: []
        - JWT-user: []
  /system/user-config/export:
    get:
      summary: Get the user configuration export file
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                format: binary
        '204':
          description: No Content. The generation of a user configuration file has not been triggered.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-user-config-export
      description: Get the user configuration export file that has been generated by sending a POST request.
      security:
        - JWT-technician: []
    post:
      summary: Trigger generation of a user configuration export file
      operationId: post-system-user-config-export
      responses:
        '202':
          description: Generation of a user configuration export file has been started.
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity (WebDAV).
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: >-
        Trigger generation of an user configuration export file. When the file is generated and available for download
        the event userConfigExportReady is sent.


        Triggered events:
          - userConfigExportReady
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EncryptionPassword'
      security:
        - JWT-technician: []
  /system/user-config/import:
    get:
      summary: Get to know if importing the user config is finished
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Finished'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-user-config-import
      description: Get to know if importing the user config is finished
      security:
        - JWT-technician: []
    post:
      summary: Import a user configuration
      operationId: post-system-user-config-import
      responses:
        '202':
          description: Import has started
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: A problem with the content of the request body has occured.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: |-
        Start importing a user configuration. When the import is finished the event userConfigImportFinished is sent.

        Triggered events:
          - userConfigImportFinished
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                encryptionPassword:
                  type: string
                userConfiguration:
                  type: string
                  format: binary
              required:
                - encryptionPassword
                - userConfiguration
  /system/user-config/last-import:
    get:
      summary: Get the date-time of the last user configuration import
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LastImport'
        '204':
          description: |-
            No Content.
            No information about a last user configuration import available.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-user-config-last-import
      description: Get the date-time of the last user configuration import
      security:
        - JWT-technician: []
    parameters: []
  /system/template-config/export:
    get:
      summary: Get the template configuration export file
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                format: binary
        '204':
          description: No Content. The generation of a template configuration file has not been triggered.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-template-config-export
      description: Get the template configuration export file that has been generated by sending a POST request.
      security:
        - JWT-technician: []
    post:
      summary: Trigger generation of a template configuration export file
      operationId: post-system-template-config-export
      responses:
        '202':
          description: Generation of a template configuration export file has been started.
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity (WebDAV).
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: >-
        Trigger generation of an template configuration export file. When the file is generated and available for
        download the event templateConfigExportReady is sent.


        Triggered events:
          - templateConfigExportReady
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EncryptionPassword'
      security:
        - JWT-technician: []
  /system/template-config/import:
    get:
      summary: Get to know if importing the template config is finished
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Finished'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-template-config-import
      description: Get to know if importing the template config is finished
      security:
        - JWT-technician: []
    post:
      summary: Import a template configuration
      operationId: post-system-template-config-import
      responses:
        '202':
          description: Import has started
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: A problem with the content of the request body has occured.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: >-
        Start importing a template configuration. When the import is finished the event templateConfigImportFinished is
        sent.


        Triggered events:
          - templateConfigImportFinished
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                encryptionPassword:
                  type: string
                templateConfiguration:
                  type: string
                  format: binary
              required:
                - encryptionPassword
                - templateConfiguration
  /system/template-config/last-import:
    get:
      summary: Get the date-time of the last template configuration import
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LastImport'
        '204':
          description: |-
            No Content.
            No information about a last template configuration import available.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-template-config-last-import
      description: Get the date-time of the last template configuration import
      security:
        - JWT-technician: []
    parameters: []
  /system/energy-management/enabled:
    get:
      summary: Get Energy Management enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-energy-management-enabled
      description: 'Check energy management status '
      security:
        - JWT-technician: []
    put:
      summary: Set Energy Management enabled status
      operationId: put-system-energy-management-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set energy management enabled status
      security:
        - JWT-technician: []
    parameters: []
  /system/cable-detection:
    get:
      summary: Get Cable Detection status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CableDetectionStateRead'
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-cable-detection
      description: |-
        Get cable detection state

        Triggered events:
         - cableDetectionStateUpdate
  /vehicles:
    get:
      summary: Get all vehicle descriptions
      operationId: get-vehicle-list-vehicles
      description: |-
        All vehicle descriptions
        The list represents a vehicle white list.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleRead'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
    post:
      summary: Add plugged vehicle to allow list
      operationId: post-vehicle-list-vehicle
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: URI of the vehicle description generated by this request
                required:
                  - id
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '409':
          description: The vehicle cannot be added to the allow list because it has been unplugged.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleWrite'
      description: Add plugged vehicle to allow list
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /vehicles/{vehicleId}:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    get:
      summary: Get a vehicle description
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleRead'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Internal Server Error
      operationId: get-vehicle-list-vehicle
      description: Description of a vehicle
      parameters: []
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set a vehicle description
      operationId: put-vehicle-list-vehicle
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Update the description of a vehicle
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleWrite'
        description: ''
      security:
        - JWT-technician: []
        - JWT-user: []
    delete:
      summary: Delete a vehicle description
      operationId: delete-vehicle-list-vehicle
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      description: Delete a vehicle description completely from all lists
      security:
        - JWT-technician: []
        - JWT-user: []
  /vehicles/{vehicleId}/image:
    parameters:
      - $ref: '#/components/parameters/vehicleId'
    delete:
      summary: Delete a vehicle image
      operationId: delete-vehicle-image-assignment
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Delete image from a vehicle.
      security:
        - JWT-technician: []
        - JWT-user: []
  /vehicles/plugged:
    get:
      summary: Get the description of the present plugged vehicle
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluggedVehicle'
        '204':
          description: No content
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-vehicles-plugged
      description: Description of the present plugged vehicle
    parameters: []
  /vehicles/images:
    parameters: []
    post:
      summary: Add an image of a vehicle
      operationId: post-vehicle-list-vehicles-images
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                vehicleImage:
                  type: string
                  format: binary
              required:
                - vehicleImage
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  uri:
                    type: string
                    description: URI of the image generated by this request
                required:
                  - uri
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: A problem with vehicle image has occured.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: >-
        Add an image of a vehicle.

        The uri of the response should be used to associate the image with a vehicle with the help of the corresponding
        vehicle operation.
      security:
        - JWT-technician: []
        - JWT-user: []
  /allow-list/import:
    post:
      summary: Import allow-list
      operationId: post-allow-list-import
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request. CSV file in wrong format.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. User is logged in but with wrong role.
        '404':
          description: Not Found. Route not found.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Internal Server Error. Error while handling file by server.
      parameters: []
      security:
        - JWT-technician: []
      description: Import an allow list file. All existing entries in the allow list are overwritten.
      requestBody:
        content:
          text/csv:
            schema:
              type: string
              format: binary
    parameters: []
  /allow-list/export:
    get:
      summary: Get an export of the allow list
      operationId: get-allow-list-export
      description: Get an export of the allow list
      responses:
        '200':
          description: OK
          content:
            text/csv:
              schema:
                type: string
                format: binary
          headers: {}
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      parameters:
        - schema:
            type: string
          in: header
          name: Content-Disposition
          description: attachment; filename="allow_list.csv"
    parameters: []
  /rfid-cards:
    get:
      summary: Get all RFID cards
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RfidCardKnown'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      operationId: get-rfid-cards
      description: Get a list of all RFID cards
    post:
      summary: Add an RFID card
      operationId: post-rfid-cards
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID of the RFID card description generated by this request
                required:
                  - id
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Add an RFID card
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RfidCardNew'
      security:
        - JWT-technician: []
    parameters: []
  /rfid-cards/last-read:
    get:
      summary: Get the description of the last read RFID card
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RfidCardLastRead'
        '204':
          description: No RFID card has been read
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      operationId: get-rfid-cards-last-read
      description: Get the description of the last read RFID card
      security:
        - JWT-technician: []
  /rfid-cards/{rfidCardId}:
    parameters:
      - $ref: '#/components/parameters/rfidCardId'
    get:
      summary: Get an RFID card description
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RfidCardKnown'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      parameters: []
      security:
        - JWT-technician: []
      operationId: get-rfid-cards-card
      description: Get an RFID card description
    put:
      summary: Set an RFID card description
      operationId: put-rfid-cards-card
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Update the description of an RFID card
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RfidCardWrite'
        description: ''
      security:
        - JWT-technician: []
    delete:
      summary: Delete an RFID card description
      operationId: delete-rfid-cards-card
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      description: Delete an RFID card description
      security:
        - JWT-technician: []
  /rfid-cards/reading/enable:
    put:
      summary: Enable RFID card reading
      description: Enable RFID card reading
      operationId: put-rfid-cards-reading-enable
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
    parameters: []
  /events:
    get:
      summary: Server-sent event stream publishing events and value updates
      responses:
        '200':
          description: OK
          content:
            text/event-stream:
              schema:
                type: object
                format: event-stream
                properties:
                  event:
                    type: string
                  data:
                    type: object
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '500':
          description: Unexpected internal server error
      operationId: events
      description: >-
        Server-sent events (SSE) are published at this stream to all clients. Streams cannot be described correctly in
        the OpenAPI specification format. Therefore this description should be read like this:

        - 'array' represents a stream and not a real array.

        - The message format of Server-sent events is standardized, see
        https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#fields

        - Every event type is identified by the property "event" which is mapped to the SSE field "event".

        - The message content is described here as property "data" and mapped to the SSE field "data".

        - The associated GET API is described here as property "relatedGetApi". The described GET API must be called to
        get the current values.


        Possible schemas for 'data' for the corresponding event type:

        - event: temperatureUnitUpdate
          data: ''
          relatedGetApi: '/system/temperature-units/selected'
        - event: distanceUnitUpdate
          data: ''
          relatedGetApi: '/system/distance-units/selected'
        - event: targetSoCTimeUnitUpdate
          data: ''
          relatedGetApi: '/system/target-soc-time-units/selected'
        - event: chargingCurvePointAppend
          data: $ref: '#/components/schemas/ChargingCurvePoint'
        - event: chargingStateUpdate
          data: ''
          relatedGetApi: '/charging/state'
        - event: lastStartedSessionUpdate
          data: ''
          relatedGetApi: '/charging/last-started-session'
        - event: selectedLanguageUpdate
          data: ''
          relatedGetApi: '/system/languages/selected'
        - event: updateProgressUpdate
          data: $ref: '#/components/schemas/UpdateProgress'
          relatedGetApi: '/system/update/progress'
        - event: updateInfoUpdate
          data: ''
          relatedGetApi: '/system/update/info'
        - event: automaticUpdateDownloadUpdate
          data: ''
          relatedGetApi: '/system/update/auto-download'
        - event: automaticUpdateUpdate
          data: ''
          relatedGetApi: '/system/update/auto-update'
        - event: ethernetUpdate
          data: ''
          relatedGetApi: '/connection/ethernet'
        - event: ethernetEnabledUpdate
          data: ''
          relatedGetApi: '/connection/ethernet/enabled'
        - event: ethernetConnectedUpdate
          data: ''
          relatedGetApi: '/connection/ethernet/connected'
        - event: wlanAvailableAccessPointsUpdate
          data: ''
          relatedGetApi: '/connection/wlan-client/available'
          description: The list of available wifi access points has changed.
        - event: wlanAccessPointUpdate
          data: ''
          relatedGetApi: '/connection/wlan-client/connected'
          description: The connection of the wallbox to an wifi access point has changed.
        - event: wlanAccessPointConnectionFailed
          data: ''
          description: Failed to establish a connection to an access point.
        - event: wlanEnabledUpdate
          data: ''
          relatedGetApi: '/connection/wlan/enabled'
          description: Wifi has been enabled or disabled.
        - event: plcEnabledUpdate
          data: ''
          relatedGetApi: '/connection/plc/enabled'
        - event: accessPointDisconnected
          data: ''
        - event: rfidCardsUpdate
          data: 'array of $ref: '#/components/schemas/RfidCardKnown'
          relatedGetApi: '/rfid-cards'
        - event: lteEnabledUpdate
          data: ''
          relatedGetApi: '/connection/lte/enabled'
        - event: lteStatusUpdate
          data: ''
          relatedGetApi: '/connection/lte/status'
        - event: lteConnectUpdate
          data: ''
          relatedGetApi: '/connection/lte/connected'
        - event: lteNetworkProviderUpdate
          data: ''
          relatedGetApi: '/connection/lte/network-connections/available'
        - event: lteSelectedNetworkProviderUpdate
          data: ''
          relatedGetApi: '/connection/lte/network-connections/selected'
        - event: lteAutoNetworkConnectionEnabledUpdate
          data: ''
          relatedGetApi: '/connection/lte/auto-network-connections/enabled'
        - event: lteNetworkTypeUpdate
          data: ''
          relatedGetApi: '/connection/lte/network-type'
        - event: lteApnSettingsUpdate
          data: ''
          relatedGetApi: '/connection/lte/connect'
        - event: lteAccessDataUpdate
          data: ''
          relatedGetApi: '/connection/lte/access-data'        
        - event: vehicleListUpdate
          data: ''
          relatedGetApi: '/vehicles'
        - event: vehicleUpdate
          data: ''
          relatedGetApi: '/vehicles/{vehicleId}'
        - event: pluggedVehicleUpdate
          data: ''
          relatedGetApi: '/vehicles/plugged'
        - event: errorsUpdate
          data: ''
          relatedGetApi: '/system/errors'
        - event: rfidCardsReadingUpdate
          data: $ref: '#/components/schemas/RfidCardsReadingUpdate'
        - event: chargingLimitsUpdate
          data: ''
          relatedGetApi: '/charging/limits'
        - event: ledAutomaticLuminosityEnabledUpdate
          data: ''
          relatedGetApi: '/system/led/automatic-luminosity-enabled'
        - event: ledLuminosityUpdate
          data: ''
          relatedGetApi: '/system/led/luminosity'
        - event: energySavingUpdate
          data: ''
          relatedGetApi: '/system/energy-saving'
        - event: chargingUserLimitCurrentUpdate
          data: ''
          relatedGetApi: '/charging/user-limit-current'
        - event: groundMonitoringUpdate
          data: ''
          relatedGetApi: '/system/ground-monitoring'
        - event: hotspotEnabledUpdate
          data: ''
          relatedGetApi: '/connection/hotspot/enabled'
        - event: hotspotUpdate
          data: ''
          relatedGetApi: '/connection/hotspot'
        - event: ocppUpdate
          data: ''
          relatedGetApi: '/connection/ocpp'
        - event: ocppEnabledUpdate
          data: ''
          relatedGetApi: '/connection/ocpp/enabled'
        - event: ocppConnectedUpdate
          data: ''
          relatedGetApi: '/connection/ocpp/connected'
        - event: ocppAllowListEnabledUpdate
          data: ''
          relatedGetApi: '/connection/ocpp/allow-list-enabled'
        - event: ocppRemoteStartChargingEnabledUpdate
          data: ''
          relatedGetApi: '/connection/ocpp/remote-start-charging-enabled'
        - event: ocppVehicleConnectionTimeoutUpdate
          data: ''
          relatedGetApi: '/connection/ocpp/vehicle-connection-timeout'
        - event: chargingFreeChargingUpdate
          data: ''
          relatedGetApi: '/charging/free-charging'
        - event: eebusConfigurationUpdate
          data: ''
          relatedGetApi: '/connection/eebus'
        - event: eebusAvailableDevicesUpdate
          data: ''
          relatedGetApi: '/connection/eebus/available'
        - event: eebusPairedUpdate
          data: ''
          relatedGetApi: '/connection/eebus/paired'
        - event: energyMeterUpdate
          data: ''
          relatedGetApi: '/system/energy-meter'
        - event: socketOutletUpdate
          data: ''
          relatedGetApi: '/system/socket-outlet'
        - event: timeSourceSelected
          data: ''
          relatedGetApi: '/system/date-time/time-sources/selected'
          description: Sent when the list of time sources changes
        - event: dateTimeUpdate
          data: ''
          relatedGetApi: '/system/date-time'
          description: Sent when date-time settings change
        - event: dateFormatUpdate
          data: ''
          relatedGetApi: '/system/date-time/date-format'
        - event: chargingRestrictionsUpdate
          data: ''
          relatedGetApi: '/charging/restrictions'
        - event: deviceTemperaturesUpdate
          data: ''
          relatedGetApi: '/system/device-temperatures'
        - event: deviceStateUpdate
          data: ''
          relatedGetApi: '/system/device-state'
        - event: relaisSwitchEnabledUpdate
          data: ''
          relatedGetApi: '/system/relais-switch/enabled'
        - event: relaisSwitchStateUpdate
          data: ''
          relatedGetApi: '/system/relais-switch/state'
        - event: heartBeat
          data: ''
        - event: offPeakTimeChargingEnabledUpdate
          data: ''
          relatedGetApi: '/charging/off-peak/enabled'
        - event: offPeakTimeChargingPlanUpdate
          data: ''
          relatedGetApi: '/charging/off-peak/plans'
        - event: offPeakTimeChargingRandomisedDelayUpdate
          data: ''
          relatedGetApi: '/charging/off-peak/randomised-delay'
        - event: userConfigExportReady
          data: ''
          relatedGetApi: '/system/user-config/export'
        - event: userConfigImportFinished
          data: ''
          relatedGetApi: '/system/user-config/import'
        - event: templateConfigExportReady
          data: ''
          relatedGetApi: '/system/template-config/export'
        - event: templateConfigImportFinished
          data: ''
          relatedGetApi: '/system/template-config/import'
        - event: energyManagementEnabledUpdate
          data: ''
          relatedGetApi: '/system/energy-management/enabled'
        - event: cableDetectionStateUpdate
          data: ''
          relatedGetApi: '/system/cable-detection'
        - event: rfidEnabledUpdate
          data: ''
          relatedGetApi: '/connection/rfid/enabled'
        - event: groundMonitoringAvailableUpdate
          data: ''
          relatedGetApi: '/system/ground-monitoring/available'
        - event: electronicTypeplateUpdate
          data: ''
          relatedGetApi: '/system/electronic-typeplate'
        - event: geoLocationUpdate
          data: ''
          relatedGetApi: '/system/geo-location'
        - event: energySavingAvailableUpdate
          data: ''
          relatedGetApi: '/system/energy-saving/available'
        - event: modbusEnabledUpdated 
          data: ''
          relatedGetApi: '/connection/modbus/enabled'        
        - event: pvOptimizationModeUpdate
          data: ''
          relatedGetApi: '/charging/pvoptimization/mode'
        - event: timeFormatUpdate
          data: ''
          relatedGetApi: '/system/date-time/time-format'  
        - event: v2gEnabledUpdate
          data: ''
          relatedGetApi: '/system/v2g/enabled'  
        - event: v2gConfigurationUpdated
          data: ''
          relatedGetApi: '/system/v2g/grid-configuration'
        - event: v2gCountryListUpdated
          data: ''
          relatedGetApi: '/system/v2g/country-codes'
        - event: v2gGridRegulationsAvailableUpdated
          data: ''
          relatedGetApi: '/system/v2g/grid-regulations/available'
        - event: v2gGridRegulationsSettingsUpdated
          data: ''
          relatedGetApi: '/system/v2g/grid-regulations/settings'
        - event: deviceUsageUpdated
          data: ''
          relatedGetApi: '/system/device-usage/selected'
        - event: manualRebootAllowed
          data: ''
          relatedGetApi: '/system/reboot/enabled'
  /jwt/login:
    post:
      summary: Login
      operationId: post-login
      responses:
        '200':
          description: OK
          headers:
            Authorization:
              schema:
                type: string
              description: bearer token
        '400':
          description: Bad Request
        '401':
          description: >-
            Unauthorized - response when password or role is not correct. The body describes either if it is possible to
            make another login attempt or if the login is disabled and a penalty timer is running. As long as a penalty
            timer is running login attempts will fail with this response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationFail'
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      description: Endpoint to authenticate user
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                user:
                  type: string
                pass:
                  type: string
        description: Body content values seperated by &
    parameters: []
  /jwt/logout:
    post:
      summary: Logout
      operationId: post-logout
      responses:
        '200':
          description: Successfully logged out
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '500':
          description: Unexpected internal server error
      description: Endpoint to logout and invalidate the current JWT token
      security:
        - JWT-technician: []
        - JWT-user: []
  /jwt/puk/validity/{puk}:
    get:
      summary: Check if PUK is valid
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The puk is not valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationFail'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-jwt-puk-validity
      description: Check if PUK is valid
    parameters:
      - schema:
          type: string
        name: puk
        in: path
        required: true
  /jwt/puk/validity-status:
    get:
      summary: Get PUK Validity Status
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationFail'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-jwt-puk-validity-status
      description: Get PUK Validity Status
    parameters: []
  /jwt/puk/password:
    post:
      summary: Change password with PUK
      operationId: post-jwt-puk-password
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The puk has not been accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationFail'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: >-
            A password change validation error has occured. The error is reported according to the schema of the
            response body:


            "property": "password"


            "error": "passwordInvalid"
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Change password with PUK
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Puk'
        description: Values seperated by &
    parameters: []
  /jwt/refresh:
    get:
      summary: Refresh access token
      responses:
        '200':
          description: OK
          headers:
            Authorization:
              schema:
                type: string
              description: new access token
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      operationId: get-jwt-refresh
      description: Refresh access token
      parameters:
        - schema:
            type: string
          in: header
          name: Authorization
          description: Access token
        - schema:
            type: string
          in: cookie
          name: token
          description: Refresh token
          required: true
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /connection/ethernet:
    get:
      summary: Get ethernet connection settings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EthernetRead'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ethernet
      security:
        - JWT-technician: []
      description: Get configured ethernet connection settings
    put:
      summary: Update ethernet connection settings
      operationId: put-connection-ethernet
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Update ethernet connection settings
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EthernetWrite'
        description: ''
  /connection/ethernet/connected:
    get:
      summary: Get the state of the Ethernet connection
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connected'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ethernet-connected
      description: Get the state of the Ethernet connection
      security:
        - JWT-technician: []
        - JWT-user: []
  /connection/wlan/enabled:
    get:
      summary: Get WLAN enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-wlan-enabled
      description: 'Check if WLAN is enabled '
      security:
        - JWT-technician: []
    put:
      summary: Set WLAN enabled status
      operationId: put-connection-wlan-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set wlan enabled status
      security:
        - JWT-technician: []
    parameters: []
  /connection/wlan-client/available:
    get:
      summary: Get available WLAN access points
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccessPointShort'
        '202':
          description: |-
            Accepted

            Network scan is still in progress.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-wlan-ap-available
      security:
        - JWT-technician: []
      description: Get available access points
    parameters: []
  /connection/wlan-client/connected:
    get:
      summary: Get connected WLAN access point
      description: Get connected WLAN access point
      operationId: get-connection-wlan-ap-connected
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessPoint'
        '204':
          description: No content
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
    delete:
      summary: Disconnect from WLAN Access Point
      operationId: delete-connection-wlan-ap-connected
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Disconnect the wallbox from an WLAN access point
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Update connected WLAN access point connection settings
      operationId: put-connection-wlan-client-connected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessPoint'
      security:
        - JWT-technician: []
      description: Update connected wlan access point
  /connection/wlan-client/connect:
    post:
      summary: Connect to access point with detailed information
      operationId: post-connection-wlan-ap-connect
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: |-
        Connect to access point

        - wlanAccessPointUpdate event is send on connection was established
        - wlanAccessPointConnectionFailed event is send if connection failes
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessPointConnect'
    parameters: []
  /connection/wlan-client/connect-short:
    post:
      summary: Connect to access point with short information
      operationId: post-connection-wlan-ap-connect-short
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Connect to access point

        - wlanAccessPointUpdate event is send on connection was established
        - wlanAccessPointConnectionFailed event is send if connection failes
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessPointShortConnect'
    parameters: []
  /connection/hotspot:
    get:
      summary: Get current hotspot
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Hotspot'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-hotspot
      description: Get current hotspot configuration
      security:
        - JWT-technician: []
    put:
      summary: Change hotspot config
      operationId: put-connection-hotspot
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Hotspot'
      description: Change hotspot configuration
  /connection/hotspot/enabled:
    get:
      summary: Get hotspot enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-hotspot-enabled
      description: 'Check if hotspot is enabled '
      security:
        - JWT-technician: []
    put:
      summary: Set hotspot enabled status
      operationId: put-connection-hotspot-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set hotspot enabled status
      security:
        - JWT-technician: []
    parameters: []
  /connection/lte/enabled:
    get:
      summary: Get LTE enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-lte-enabled
      description: 'Check if LTE connection is enabled '
      security:
        - JWT-technician: []
    put:
      summary: Enable LTE connection
      operationId: put-connection-lte-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Enable LTE connection
      security:
        - JWT-technician: []
    parameters: []
  /connection/lte/status:
    get:
      summary: Get LTE enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LteStatus'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-lte-status
      description: Get LTE status
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /connection/lte/pin:
    post:
      summary: Connect to LTE network
      operationId: post-connection-lte-pin
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Confirmed'
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Set SIM pin.
        Returns connected true if pin is correct, false otherwise.
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                pin:
                  type: string
              required:
                - pin
    parameters: []
  /connection/lte/access-data:
    get:
      summary: Get LTE access data details
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDataDetail'
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-lte-access-data-detail
      description: Get LTE access data details
      security:
        - JWT-technician: []
    parameters: []
  /connection/lte/connect:
    post:
      summary: Connect to LTE network
      operationId: post-connection-lte-connect
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      description: Connect to LTE network
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LteConnect'
    parameters: []
    get:
      summary: Get LTE network access data
      operationId: get-connection-lte-connect
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LteConnect'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      description: Get LTE network access data
      security:
        - JWT-technician: []
  /connection/lte/auto-network-connections/enabled:
    get:
      summary: Get automatic selected network connection enabled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '500':
          description: Internal Server Error
      operationId: get-connection-lte-auto-network-connections-enabled
      description: Get if the automatic network provider selection is enabled
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Set automatic select network provider enabled
      operationId: put-connection-lte-auto-network-connections-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      description: Enabled the automatic network provider selection
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
  /connection/lte/network-connections/available:
    get:
      summary: Get available LTE network connections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NetworkProvider'
        '202':
          description: |-
            Accepted

            Network scan is still in progress.
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-lte-network-connections-available
      description: Get available LTE network connections
      security:
        - JWT-technician: []
    parameters: []
  /connection/lte/network-connections/selected:
    get:
      summary: Get selected network connection
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkProvider'
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '500':
          description: Internal Server Error
      operationId: get-connection-lte-network-connections-selected
      description: Get selected network connection
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Put selected network provider
      operationId: put-connection-lte-network-connections-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      description: Set selected network provider
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkProvider'
  /connection/lte/network-type:
    get:
      summary: Get network type
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LteNetworkType'
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '500':
          description: Internal Server Error
      operationId: get-connection-lte-network-type
      description: Get network type
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Set network type
      operationId: put-connection-lte-network-type
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      description: Set network type
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LteNetworkType'
  /connection/lte/connected:
    get:
      summary: Get connected LTE access point
      description: Get connected LTE access point
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectedNetworkProvider'
        '204':
          description: |-
            No Content

            LTE not equipped
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-lte-connected
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /connection/plc/enabled:
    get:
      summary: Get PLC enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-plc-enabled
      description: 'Check if PLC is enabled '
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set PLC enabled status
      operationId: put-connection-plc-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Set plc enabled status
      security:
        - JWT-technician: []
        - JWT-user: []
  /connection/ocpp:
    get:
      summary: Get OCPP connection settings
      description: Get OCPP connection settings
      operationId: get-connection-ocpp
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OcppConnectionRead'
        '204':
          description: No connection settings available
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
    delete:
      summary: Disconnect from OCPP backend
      description: |-
        Disconnect from OCPP backend

        Triggered events:
        - ocppConnectedUpdate
      operationId: delete-connection-ocpp
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: >-
            Not found. Could mean that there is no matching vehicle description or that this path is not implemented
            yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
  /connection/ocpp/enabled:
    get:
      summary: Get OCPP enabled state
      description: Get OCPP enabled state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ocpp-enabled
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Set OCPP enabled state
      description: |-
        Set OCPP enabled state

        Triggered events:
        - ocppEnabledUpdate
      operationId: put-connection-ocpp-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      security:
        - JWT-technician: []
  /connection/ocpp/connect:
    post:
      summary: Connect to OCPP backend
      description: |-
        Connect to OCPP backend

        Triggered events:
        - ocppUpdate
        - ocppConnectedUpdate
      operationId: post-connection-ocpp-connect
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OcppConnectionWrite'
      security:
        - JWT-technician: []
  /connection/ocpp/connected:
    get:
      summary: Get OCPP connected state
      description: Get OCPP connected state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connected'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ocpp-connected
      security:
        - JWT-technician: []
        - JWT-user: []
  /connection/ocpp/allow-list-enabled:
    get:
      summary: Get allow list enabled state of OCPP settings
      description: Get allow list enabled state of OCPP settings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ocpp-allow-list-enabled
      security:
        - JWT-technician: []
    put:
      summary: Set allow list enabled state of OCPP settings
      description: |-
        Set allow list enabled state of OCPP settings

        Triggered events:
        - ocppAllowListEnabledUpdate
      operationId: put-connection-ocpp-allow-list-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      security:
        - JWT-technician: []
  /connection/ocpp/remote-start-charging-enabled:
    get:
      summary: Get remote start charging enabled state of OCPP
      description: Get remote start charging enabled state of OCPP
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ocpp-remote-start-charging-enabled
      security:
        - JWT-technician: []
    put:
      summary: Set remote start charging enabled state of OCPP
      description: |-
        Set remote start charging enabled state of OCPP

        Triggered events:
        - ocppRemoteStartChargingEnabledUpdate
      operationId: put-connection-ocpp-remote-start-charging-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      security:
        - JWT-technician: []
  /connection/ocpp/vehicle-connection-timeout:
    get:
      summary: Get vehicle connection timeout of OCPP
      description: Get vehicle connection timeout of OCPP
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectionTimeout'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-ocpp-vehicle-connection-timeout
      security:
        - JWT-technician: []
    put:
      summary: Set vehicle connection timeout of OCPP
      description: |-
        Set vehicle connection timeout of OCPP

        Triggered events:
        - ocppVehicleConnectionTimeoutUpdate
      operationId: put-connection-ocpp-vehicle-connection-timeout
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectionTimeout'
      security:
        - JWT-technician: []
  /connection/ocpp/standard-versions:
    get:
      summary: Get list of supported OCPP standard versions
      description: Get list of supported OCPP standard versions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              examples:
                example-1:
                  value:
                    - '1.6'
                    - '2.0'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-standard-versions
      security:
        - JWT-technician: []
  /connection/eebus:
    get:
      summary: GET EEBUS configuration
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EEBUSDevice'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-eebus
      description: Get EEBUS configuration of wallbox.
      security:
        - JWT-technician: []
  /connection/eebus/available:
    get:
      summary: GET available EEBUS devices
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EEBUSDevice'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-eebus-available
      description: Get available EEBUS devices in network.
      security:
        - JWT-technician: []
    parameters: []
  /connection/eebus/paired:
    get:
      summary: GET paired EEBUS device
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PairedEEBUSDevice'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-eebus-paired
      description: Get paired EEBUS devices.
      security:
        - JWT-technician: []
        - JWT-user: []
    parameters: []
  /connection/eebus/paired/{eebusDeviceSki}:
    parameters:
      - $ref: '#/components/parameters/eebusDeviceSki'
    post:
      summary: Pair with EEBUS device
      operationId: post-connection-eebus-paired
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: Pair with EEBUS device.
      security:
        - JWT-technician: []
    delete:
      summary: DELETE EEBUS pairing
      operationId: delete-connection-eebus-paired
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      description: Unpair paired EEBUS device.
  /connection/network/connected:
    get:
      summary: Get the overall network connection state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connected'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-network-connected
      description: Get the overall network connection state
      security:
        - JWT-technician: []
        - JWT-user: []
  /connection/rfid/enabled:
    get:
      summary: Get RFID enabled status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-rfid-enabled
      description: Check if RFID is enabled
      security:
        - JWT-technician: []
    put:
      summary: Set RFID enabled status
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: put-connection-rfid-enabled
      description: |-
        Set RFID enabled status

        Triggered events:
        - rfidEnabledUpdate
      security:
        - JWT-technician: []
  /system/geo-location:
    get:
      summary: Get current geo location
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoLocation'
            application/xml:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-geo-location
      description: Get current geo locatio
      security:
        - JWT-technician: []
        - JWT-user: []
    put:
      summary: Change geo location
      operationId: put-system-geo-location
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeoLocation'
      description: Change geo location
    parameters: []
  /connection/modbus/enabled:
    get:
      summary: Get current state of modbus server
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-connection-modbus-enabled
      description: Get current state of modbus server
      security:
        - JWT-technician: []
    put:
      summary: Change current state of modbus server
      operationId: put-connection-modbus-enabled
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: |-
            Unprocessable Entity.
            The request was well-formed but was unable to be followed due to validation errors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      description: Change current state of modbus server
    parameters: []
  /charging/pvoptimization/mode:
    get:
      summary: Get pv optimization mode
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PvOptimizationModeRead'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-pv-optimization-mode
      description: Get pv optimization mode
      security:
        - JWT-technician: []
    parameters: []
    put:
      summary: Set pv optimization mode
      operationId: put-pv-optimization-mode
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Set pv optimization mode

        Triggered events:
         - pvOptimizationModeUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PvOptimizationModeWrite'
      security:
        - JWT-technician: []
  /system/date-time/time-format:
    get:
      summary: Get the time format
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeFormat'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-date-time-time-format
      description: Get the time format
      security:
        - JWT-user: []
        - JWT-technician: []
    put:
      summary: Set the time format
      operationId: put-system-date-time-time-format
      responses:
        '200':
          description: OK
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      description: |-
        Set the time format

        Triggered events:
         - timeFormatUpdate
      security:
        - JWT-technician: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimeFormat'
    parameters: []
  /system/v2g/enabled:
    get:
      summary: Get V2G enabled status
      description: Retrieve the current enabled status for V2G functionality.
      responses:
        '200':
          description: Enabled status of V2G
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      operationId: get-v2g-enabled
      security:
        - JWT-technician: []
    put:
      summary: Set V2G enabled status
      description: Enable or disable V2G functionality.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enabled'
      responses:
        '200':
          description: Successfully updated enabled status
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
      operationId: put-v2g-enabled
      security:
        - JWT-technician: []
    parameters: []
  /system/v2g/grid-configuration:
    get:
      summary: Get V2G grid configuration
      description: Retrieve the current grid configuration for V2G.
      responses:
        '200':
          description: Grid configuration for V2G
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2GSettingsRead'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      operationId: get-v2g-grid-configuration
      security:
        - JWT-technician: []
    put:
      summary: Set V2G grid configuration
      description: Update the grid configuration for V2G.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2GSettings'
      responses:
        '200':
          description: Successfully updated grid configuration
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
      operationId: put-v2g-grid-configuration
      security:
        - JWT-technician: []
    parameters: []
  /system/v2g/country-codes:
    get:
      summary: Get available EVSE country codes
      description: Retrieve the list of valid country codes that can be used for EVSE_Country_info
      responses:
        '200':
          description: List of available EVSE country codes
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountryCodeGridSettings'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
      security:
        - JWT-technician: []
      operationId: get-v2g-country-codes
  /system/v2g/country-info:
    get:
      summary: Get V2G country info
      description: Retrieve the v2g country info
      responses:
        '200':
          description: Country info of V2G
          content:
            application/json:
              schema:
                type: object
                properties:
                  country:
                    type: string
        '204':
          description: No Content
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      operationId: get-v2g-country-info
    parameters: []
  /system/v2g/grid-regulations/available:
    get:
      summary: Get Grid Safe Mode configuration
      description: >-
        Determines whether Grid Safe Mode configuration is required for the specific wallbox (based on country-specific
        regulations and automatic charging setting).
      responses:
        '200':
          description: Determines whether Grid Safe Mode configuration is required for the specific wallbox
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Available'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      operationId: get-v2g-grid-regulations-available
    parameters: []
  /system/v2g/grid-regulations/settings:
    get:
      summary: Get Grid Safe Mode configuration
      description: Returns current grid regulation settings.
      responses:
        '200':
          description: Grid Safe Mode configuration for V2G
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2GGridRegulationsRead'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      operationId: get-v2g-grid-regulations-settings
      security:
        - JWT-technician: []
    put:
      summary: Set Grid Safe Mode configuration
      description: Get Grid Safe Mode configuration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2GGridRegulations'
      responses:
        '200':
          description: Successfully updated safe grid configuration
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
      operationId: put-v2g-grid-regulations-settings
      security:
        - JWT-technician: []
    parameters: []
  /system/v2g/grid-regulations/required:
    get:
      summary: Get grid regulations is required
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Required'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-v2g-grid-regulations-required
      description: Returns true if grid regulations settings is required
    parameters: []
  /system/device-usage/required:
    get:
      summary: Get if device usage step is required in onboarding
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Required'
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-device-usage-required
      description: Returns true if device usage is required in onboarding
    parameters: []
  /system/device-usage/selected:
    get:
      summary: Get selected device usage
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceUsage'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-device-usage-selected
      description: Get selected device usage
      security:
        - JWT-technician: []
    put:
      summary: Set selected device usage
      operationId: put-system-device-usage-selected
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceUsage'
        description: ''
      description: |-
        Set device usage

        Triggered events:
         - deviceUsageUpdated
      security:
        - JWT-technician: []
    parameters: []
  /system/eu-data:
    get:
      summary: Get all data points required by the EU data act
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EuDataExportFormat'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      operationId: get-system-eu-data
      description: Get all data points required by the EU data act
      security:
        - JWT-technician: []
        - JWT-user: []
  /system/reboot/exec:
    post:
      summary: performs the reboot action. the device will not be accessible until after the reboot
      operationId: post-system-reboot-exec
      responses:
        '200':
          description: OK
        '400':
          description: >-
            Bad Request

            The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the
            request without modifications.
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '422':
          description: Unprocessable. the currently configured brand on the device does not support this feature.
        '500':
          description: Internal Server Error
      security:
        - JWT-technician: []
        - JWT-user: []
  /system/reboot/enabled:
    get:
      description: |-
        this is the lock that is set by the backend for the Webapp 
        to decide if the Button should be greyed out or not to prevent 
        the user from rebooting the device in critical situations
      operationId: get-system-reboot-enabled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enabled'
        '401':
          description: Unauthorized. The request requires user authentication.
        '403':
          description: Forbidden. The client is authenticated but not authorized.
        '404':
          description: Not found. Could mean that this path is not implemented yet.
        '500':
          description: Unexpected internal server error
      security:
        - JWT-technician: []
        - JWT-user: []
components:
  schemas:
    TemperatureUnit:
      type: object
      title: TemperatureUnit
      properties:
        value:
          type: string
          enum:
            - celsiusDegree
            - fahrenheit
      required:
        - value
    DistanceUnit:
      type: object
      title: DistanceUnit
      properties:
        value:
          type: string
          enum:
            - kilometer
            - miles
      required:
        - value
    TargetSoCTimeUnit:
      type: object
      title: TargetSoCTimeUnit
      properties:
        value:
          type: string
          enum:
            - relative
            - absolute
      required:
        - value
    PluggedVehicle:
      title: PluggedVehicle
      type: object
      properties:
        id:
          type: string
          description: ID of the vehicle. ID is omitted if the vehicle is unknown.
        name:
          type: string
          description: Name
        brand:
          type: string
          description: Brand
        model:
          type: string
          description: Model
        imageUri:
          type: string
          description: The URI of the image
    VehicleRead:
      title: VehicleRead
      type: object
      properties:
        id:
          type: string
          description: ID of the vehicle
        name:
          type: string
          description: Name
        brand:
          type: string
          description: Brand
        model:
          type: string
          description: Model
        imageUri:
          type: string
          description: The URI of the image
      required:
        - id
        - name
    VehicleWrite:
      title: VehicleWrite
      type: object
      properties:
        name:
          type: string
          description: Name
        brand:
          type: string
          description: Brand
        model:
          type: string
          description: Model
        imageUri:
          type: string
          description: The URI of the image
      required:
        - name
    ChargingCurvePoint:
      title: ChargingCurvePoint
      type: object
      description: Charging curve data point
      properties:
        sessionId:
          type: integer
        timestamp:
          type: string
          format: date-time
        powerL1:
          type: number
        powerL2:
          type: number
        powerL3:
          type: number
        powerLimitL1:
          type: number
        powerLimitL2:
          type: number
        powerLimitL3:
          type: number
        powerLimitReasonL1:
          type: string
        powerLimitReasonL2:
          type: string
        powerLimitReasonL3:
          type: string
        currentEnergyCost:
          type: number
        availableSelfGeneratedPower:
          type: number
      required:
        - sessionId
        - timestamp
        - powerL1
        - powerL2
        - powerL3
        - powerLimitL1
        - powerLimitL2
        - powerLimitL3
        - powerLimitReasonL1
        - powerLimitReasonL2
        - powerLimitReasonL3
        - currentEnergyCost
        - availableSelfGeneratedPower
    ChargingCurve:
      title: ChargingCurve
      type: object
      properties:
        sessionId:
          type: integer
        startTime:
          type: string
          format: date-time
        curvePoints:
          type: array
          items:
            $ref: '#/components/schemas/ChargingCurvePoint'
      required:
        - sessionId
        - startTime
        - curvePoints
    ChargingState:
      type: object
      title: ChargingState
      properties:
        value:
          type: string
          enum:
            - Unplugged
            - VehicleConnected
            - Authorizing
            - Charging
            - ISOCharging
            - Paused
            - ChargingComplete
            - Error
            - Disabled
      required:
        - value
    ChargingLimits:
      title: ChargingLimits
      type: object
      properties:
        maxPower:
          type: number
          description: Maximum electrical power in [W]
        maxCurrent:
          type: integer
          description: Maximum electrical current in [A] for all phases (calculated by Wallbox)
      required:
        - maxPower
        - maxCurrent
    AuthorizationCause:
      type: string
      title: AuthorizationCause
      enum:
        - RFID
        - Backend
        - VehicleCertificate
        - AutomaticCharging
        - Manual
        - Local
        - FreeCharging
    ChargingCost:
      title: ChargingCost
      type: object
      properties:
        value:
          type: number
        unit:
          type: string
      required:
        - value
    LastStartedSession:
      title: LastStartedSession
      type: object
      properties:
        startDateTime:
          type: string
          format: date-time
        endDateTime:
          type: string
          format: date-time
          description: |-
            Present only when the session has ended.
            Absence indicates the session is still active.
        durationSeconds:
          type: integer
          description: |-
            Wallbox-computed elapsed duration in seconds.
            For finished sessions: total session duration.
            For active sessions: elapsed seconds at response time.
            Client ticks from this base — eliminates browser/wallbox clock skew.
        energyConsumption:
          type: number
          description: Energy consumption in [Wh] during the session
        chargingRate:
          type: number
          description: Charging rate for the session in [W]
        authorizationCause:
          $ref: '#/components/schemas/AuthorizationCause'
        vehicleUri:
          type: string
          description: The URI for retrieving information about the vehicle
        latestSOC:
          type: integer
          description: Latest SOC (State Of Charge) value in [%]
          minimum: 0
          maximum: 100
        targetSOC:
          type: integer
          description: Target SOC (State Of Charge) in [%]
          minimum: 0
          maximum: 100
        remainingTime:
          type: string
          description: Remaining charging time in [hh:mm:ss]
        estimatedFinishingTime:
          type: string
          description: Estimated charging finishing time
          format: date-time
        solarEnergyShare:
          $ref: '#/components/schemas/SolarEnergyShare'
        chargingCost:
          $ref: '#/components/schemas/ChargingCost'
        brand:
          type: string
          description: The brand of the vehicle.
        model:
          type: string
          description: The model of the vehicle.
        name:
          type: string
          description: The name of the vehicle.
        range:
          type: integer
          description: Range in [km]
      required:
        - startDateTime
        - authorizationCause
    SelectedLanguage:
      title: SelectedLanguage
      type: object
      properties:
        languageCode:
          type: string
          description: ISO 639-1 language code, e.g. en or de
      required:
        - languageCode
    UpdateProgress:
      title: UpdateProgress
      type: object
      description: |-
        **The following property combinations are required:**

        | state                     | progress       | updateSource   |
        |---------------------------|----------------|----------------|
        | idle                      | [none]         | [none]         |
        | readyToDownload           | [none]         | [none]         |
        | downloadingFromBackend    | **[required]** | [none]         |
        | downloadFromBackendFailed | [none]         | [none]         |
        | pending                   | [none]         | **[required]** |
        | installing                | **[required]** | [none]         |
        | rebooting                 | **[required]** | [none]         |
        | installSucceeded          | [none]         | [none]         |
        | installFailed             | [none]         | [none]         |
        | postponed                 | [none]         | [none]         |
      properties:
        state:
          type: string
          enum:
            - idle
            - readyToDownload
            - downloadingFromBackend
            - downloadFromBackendFailed
            - pending
            - installing
            - rebooting
            - installSucceeded
            - installFailed
            - postponed
          description: software update state
        progress:
          type: integer
          description: either upload, download or install progress depending on the current state [percent]
        updateSource:
          type: string
          enum:
            - manualUpdate
            - backendUpdate
          description: Source of the update file
      required:
        - state
    UpdateInfo:
      title: UpdateInfo
      type: object
      properties:
        lastUpdate:
          type: object
          properties:
            version:
              type: string
            dateTime:
              type: string
              format: date-time
            changelog:
              type: string
          required:
            - version
        availableUpdate:
          type: object
          properties:
            version:
              type: string
            changelog:
              type: string
          required:
            - version
        runningUpdate:
          type: object
          properties:
            version:
              type: string
            changelog:
              type: string
          required:
            - version
    EthernetRead:
      title: EthernetRead
      type: object
      properties:
        macAddress:
          type: string
          description: MAC address
        ipV4:
          type: string
        ipV4Subnetmask:
          type: string
        ipV4GatewayAddress:
          type: string
        ipV6:
          type: string
          description: IPV6 address
        ipV6PrefixLength:
          type: string
          description: IPV6 prefix length
        ipV6GatewayAddress:
          type: string
          description: IPV6 gateway address
        dhcpActive:
          type: boolean
          description: indicates if dhcp on or off
        hostname:
          type: string
          description: hostname
        dnsServerAddress:
          type: string
          description: |
            DNS server address
      required:
        - macAddress
        - ipV4
        - ipV4Subnetmask
        - ipV4GatewayAddress
        - ipV6
        - ipV6PrefixLength
        - ipV6GatewayAddress
        - dhcpActive
        - hostname
        - dnsServerAddress
    EthernetWrite:
      title: EthernetWrite
      type: object
      properties:
        ipV4:
          type: string
        ipV4Subnetmask:
          type: string
        ipV4GatewayAddress:
          type: string
        ipV6:
          type: string
          description: IPV6 address
        ipV6PrefixLength:
          type: string
          description: IPV6 prefix length
        ipV6GatewayAddress:
          type: string
          description: IPV6 gateway address
        dhcpActive:
          type: boolean
          description: indicates if dhcp on or off
        hostname:
          type: string
          description: hostname
        dnsServerAddress:
          type: string
          description: |
            DNS server address
    AccessPointShort:
      title: Access Point Short Information
      type: object
      properties:
        ssid:
          type: string
          description: ssid of access point
        signalStrength:
          type: integer
          description: signal strength of access point [dBm]
    AccessPointShortConnect:
      title: Access Point Short Connect
      type: object
      properties:
        ssid:
          type: string
          description: ssid of access point
        password:
          type: string
          description: password of access point
      required:
        - ssid
        - password
    AccessPoint:
      title: Access Point Detailed Information
      type: object
      properties:
        ssid:
          type: string
          description: ssid of access point
        ipV4:
          type: string
          description: IPV4 address
        ipV4Subnetmask:
          type: string
          description: IPV4 subnetmask
        ipV4GatewayAddress:
          type: string
          description: IPV4 gateway address
        ipV6:
          type: string
          description: IPV6 address
        ipV6PrefixLength:
          type: string
          description: IPV6 prefix length
        ipV6GatewayAddress:
          type: string
          description: IPV6 gateway address
        dhcpActive:
          type: boolean
          description: indicates if dhcp on or off
        dnsServerAddress:
          type: string
          description: |
            DNS server address
        macAddress:
          type: string
          description: 'MAC address '
        signalStrength:
          type: integer
        status:
          type: string
          enum:
            - connecting
            - connected
      required:
        - macAddress
    AccessPointConnect:
      title: Access Point Detailed Connect Information
      type: object
      properties:
        ssid:
          type: string
          description: ssid of access point
        connectionType:
          type: string
          enum:
            - ssid
            - bssid
          description: access point connection type
        password:
          type: string
          description: password of access point
        ipV4:
          type: string
          description: IPV4 address
        ipV4Subnetmask:
          type: string
          description: IPV4 subnetmask
        ipV4GatewayAddress:
          type: string
          description: IPV4 gateway address
        ipV6:
          type: string
          description: IPV6 address
        ipV6PrefixLength:
          type: string
          description: IPV6 prefix length
        ipV6GatewayAddress:
          type: string
          description: IPV6 gateway address
        dhcpActive:
          type: boolean
          description: indicates if dhcp on or off
        dnsServerAddress:
          type: string
          description: |
            DNS server address
      required:
        - ssid
        - connectionType
    ConnectedDevice:
      title: ConnectedDevice
      type: object
      properties:
        macAddress:
          type: string
          description: mac address of connected device
        name:
          type: string
          description: name of connected device
    Hotspot:
      title: Hotspot
      type: object
      properties:
        ssid:
          type: string
          description: ssid of hotspot
        password:
          type: string
          description: password of hotspot
        encryption:
          type: string
          description: encryption of hotspot
          enum:
            - wpa2
            - wpa3
      required:
        - ssid
        - password
        - encryption
    AccessDataDetail:
      title: AccessDataDetail
      type: object
      properties:
        imsi:
          type: string
        imei:
          type: string
        iccid:
          type: string
      description: Mobile access detail
    LteConnect:
      title: LteConnect
      type: object
      properties:
        apnName:
          type: string
        apnUsername:
          type: string
        password:
          type: string
      required:
        - apnName
    LteStatus:
      title: LteStatus
      type: object
      properties:
        status:
          type: string
          enum:
            - connected
            - fallbackTo2G
            - connectedToUnauthorizedNetworkOperator
            - connecting
            - notConnected
            - simBlocked
            - pinRequired
            - noSimDetected
            - error
            - notEquipped
      required:
        - status
    LteNetworkType:
      title: LteStatus
      type: object
      properties:
        networkType:
          type: string
          enum:
            - automatic
            - 2G
            - 4G
      required:
        - networkType
    NetworkProvider:
      title: NetworkProvider
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
    ConnectedNetworkProvider:
      title: ConnectedNetworkProvider
      type: object
      properties:
        signalStrength:
          type: string
          enum:
            - noSignal
            - fairToPoor
            - good
            - excellent
        name:
          type: string
      required:
        - signalStrength
        - name
    Enabled:
      title: Enabled
      type: object
      properties:
        enabled:
          type: boolean
      required:
        - enabled
    Finished:
      title: Finished
      type: object
      properties:
        finished:
          type: boolean
      required:
        - finished
    Confirmed:
      title: Confirmed
      type: object
      properties:
        confirmed:
          type: boolean
      required:
        - confirmed
      description: ''
    Connected:
      title: Connected
      type: object
      properties:
        connected:
          type: boolean
      required:
        - connected
    ErrorStatus:
      type: string
      title: ErrorStatus
      enum:
        - active
        - passive
    Error:
      title: Error
      type: object
      properties:
        dtc:
          type: string
          description: DTC = Diagnostic Trouble Code
        status:
          $ref: '#/components/schemas/ErrorStatus'
        category:
          type: string
          description: The category to which the error is assigned
          enum:
            - fatal
            - critical
            - nonCritical
        timestamp:
          type: string
          description: The timestamp when the error occurred
          format: date-time
          default: '1972-01-01T00:00:00Z'
      required:
        - dtc
        - status
        - category
        - timestamp
    RfidCardKnown:
      title: RfidCardKnown
      type: object
      description: Known RFID card
      properties:
        id:
          type: string
        uuid:
          type: string
        shortName:
          type: string
      required:
        - id
        - uuid
        - shortName
    RfidCardWrite:
      title: RfidCardWrite
      type: object
      description: RFID card description
      properties:
        uuid:
          type: string
        shortName:
          type: string
      required:
        - uuid
        - shortName
    RfidCardNew:
      title: RfidCardNew
      type: object
      description: RFID card description
      properties:
        uuid:
          type: string
        shortName:
          type: string
      required:
        - uuid
        - shortName
    RfidCardsReadingUpdate:
      title: RfidCardsReadingUpdate
      type: object
      properties:
        progress:
          type: integer
          description: Progress [percent]
        state:
          type: string
          enum:
            - idle
            - reading
            - success
            - detectedKnown
            - error
            - timeout
      required:
        - progress
        - state
      description: RFID card reading progress
    RfidCardLastRead:
      title: RfidCardLastRead
      type: object
      properties:
        uuid:
          type: string
        id:
          type: string
          description: ID of RFID card if known
      required:
        - uuid
    Luminosity:
      title: Luminosity
      type: object
      properties:
        value:
          type: integer
          minimum: 0
          maximum: 100
      required:
        - value
    Current:
      title: Current
      type: object
      properties:
        value:
          type: integer
          description: electrical current in [A]
      required:
        - value
    Power:
      title: Power
      type: object
      properties:
        value:
          type: integer
          description: electrical power in [W]
      required:
        - value
    GridInformation:
      title: GridInformation
      type: object
      properties:
        maximumCurrentCapability:
          type: integer
          description: The maximum current capability per phase [A]
        minimumCurrentCapability:
          type: integer
          description: The minimum current capability per phase [A]
        normDomain:
          type: string
          description: The norm domain of the device
          enum:
            - iec
            - ul
            - gbt
        gridType:
          type: string
          description: The grid type of the device
          enum:
            - onePhase
            - threePhase
      required:
        - maximumCurrentCapability
        - minimumCurrentCapability
        - normDomain
        - gridType
    ElectronicTypeplate:
      title: ElectronicTypeplate
      type: object
      properties:
        brand:
          type: string
        partNumber:
          type: string
        serialNumber:
          type: string
        hardwareVersion:
          type: string
        bundleVersion:
          type: string
        powerControllerSoftwareVersion:
          type: string
        commControllerSoftwareVersion:
          type: string
      required:
        - brand
        - partNumber
        - serialNumber
        - hardwareVersion
        - bundleVersion
        - powerControllerSoftwareVersion
        - commControllerSoftwareVersion
    OcppConnectionRead:
      title: OcppConnectionRead
      type: object
      description: OCPP connection settings when getting values
      properties:
        backendUrl:
          type: string
          description: Backend URL
        backendPort:
          type: integer
          description: Backend port
        backendOcppVersion:
          type: string
          description: Backend OCPP version
        backendTlsEnabled:
          type: boolean
          description: Backend TLS enabled
        backendUsername:
          type: string
          description: Backend username
        chargePointId:
          type: string
          description: Charge point ID
        evseId:
          type: string
      required:
        - backendUrl
        - backendPort
        - backendOcppVersion
        - backendTlsEnabled
        - chargePointId
        - evseId
    OcppConnectionWrite:
      title: OcppConnectionWrite
      type: object
      description: OCPP connection settings when setting values
      properties:
        backendUrl:
          type: string
          description: Backend URL
        backendPort:
          type: integer
          description: Backend port
        backendOcppVersion:
          type: string
          description: Backend OCPP version
        backendTlsEnabled:
          type: boolean
          description: Backend TLS enabled
        backendUsername:
          type: string
          description: Backend username
        backendPassword:
          type: string
          description: Backend password
        chargePointId:
          type: string
          description: Charge point ID
        evseId:
          type: string
      required:
        - backendUrl
        - backendPort
        - backendOcppVersion
        - backendTlsEnabled
        - chargePointId
        - evseId
    ConnectionTimeout:
      title: ConnectionTimeout
      type: object
      properties:
        timeout:
          type: integer
          description: timeout in [second]
      required:
        - timeout
    EEBUSDevice:
      title: EEBUSDevice
      type: object
      properties:
        name:
          type: string
        deviceId:
          type: string
        brand:
          type: string
        type:
          type: string
        model:
          type: string
        ski:
          type: string
      required:
        - name
        - ski
    PairedEEBUSDevice:
      title: PairedEEBUSDevice
      type: object
      properties:
        name:
          type: string
        deviceId:
          type: string
        brand:
          type: string
        type:
          type: string
        model:
          type: string
        ski:
          type: string
        connected:
          type: boolean
        error:
          type: boolean
      required:
        - name
        - ski
        - connected
    Country:
      title: Country
      type: object
      properties:
        countryCode:
          type: string
      required:
        - countryCode
    Puk:
      title: Puk
      type: object
      properties:
        puk:
          type: string
          description: PUK with a length of 10 digits
        role:
          type: string
          enum:
            - technician
            - user
          description: The role for which the password is to be changed
        password:
          type: string
          description: New password to set
      required:
        - puk
        - role
        - password
    AuthenticationFail:
      title: AuthenticationFail
      type: object
      properties:
        attempt:
          type: integer
          description: login attempt number
        maxAttempts:
          type: integer
          description: maximum number of login attempts
        remainingPenaltyTime:
          type: integer
          description: remaining penalty time [second]
      required:
        - attempt
        - maxAttempts
      description: Authentication fail description
    PasswordChange:
      title: PasswordChange
      type: object
      properties:
        password:
          type: string
          description: The new password.
        oldPassword:
          type: string
          description: The old password.
      required:
        - password
        - oldPassword
    EnergyMeter:
      title: EnergyMeter
      type: object
      properties:
        manufacturer:
          type: string
          description: The manufacturer of the energy meter
        status:
          type: string
          enum:
            - notEquipped
            - connected
            - active
            - error
          description: The status of the energy meter
        hardwareVersion:
          type: string
          description: The hardware version of the energy meter
        softwareVersion:
          type: string
          description: The software version of the energy meter
        serialNumber:
          type: string
          description: The serial number of the energy meter
        calibrationDate:
          type: string
          description: The calibration date of the energy meter
          format: date-time
        operatingHours:
          type: integer
          description: The operating hours of the energy meter
        energyAmount:
          type: number
          description: The energy amount in [Wh] of the energy meter
        publicKey:
          type: string
          description: The public key of the energy meter as base64
      required:
        - status
    SocketOutletRead:
      title: SocketOutletRead
      type: object
      properties:
        lockStatus:
          type: string
          enum:
            - notEquipped
            - unlocked
            - locked
            - error
        lockActivation:
          $ref: '#/components/schemas/SocketOutletLockActivation'
      required:
        - lockStatus
        - lockActivation
    SocketOutletWrite:
      title: SocketOutletWrite
      type: object
      properties:
        lockActivation:
          $ref: '#/components/schemas/SocketOutletLockActivation'
      required:
        - lockActivation
    SocketOutletLockActivation:
      title: SocketOutletLockActivation
      type: string
      enum:
        - whenCableDetected
        - duringCharging
    Id:
      title: Id
      type: object
      properties:
        id:
          type: string
          description: Identifier
      required:
        - id
      description: Generic identifier model
    TimeSource:
      title: TimeSource
      type: object
      description: Time source
      properties:
        value:
          type: string
          enum:
            - ocpp
            - userSetting
            - ntp
            - lte
      required:
        - value
    DateTimeInfo:
      title: DateTimeInfo
      type: object
      properties:
        dateTime:
          type: string
          format: date-time
          description: |-
            Current date and time without UTC offset:
            YYYY-MM-DDThh:mm:ss
            2022-07-16T19:20:30
        timeOffsetFromUtc:
          type: string
          example: '+02:00'
          format: TimeOffsetFromUtcFormat
          pattern: ^\+|\-[0-9][0-9]:[0-9][0-9]$
      required:
        - dateTime
        - timeOffsetFromUtc
    DateFormat:
      title: DateFormat
      type: object
      description: Date format
      properties:
        value:
          type: string
          enum:
            - DDMMYY
            - YYMMDD
            - MMDDYY
      required:
        - value
    ChargingRestriction:
      title: ChargingRestriction
      type: object
      properties:
        maxCurrent:
          type: integer
          description: Maximum electrical current in [A] for all phases (calculated by Wallbox)
        restriction:
          type: string
          description: Name of the charging restriction
          enum:
            - derating
            - secondaryInput
            - manualUserInput
            - externalChargingLock
            - overloadProtection
            - hardware
            - notAllowed
            - ocpp
            - smartCharging
            - dso
      required:
        - maxCurrent
        - restriction
    DeviceState:
      title: DeviceState
      type: object
      description: Device state
      properties:
        systemState:
          type: string
          enum:
            - initialization
            - normal
            - failsafe
          description: system state
        elapsedTimeSinceStart:
          type: integer
          description: elapsed time since the start of the wallbox [sec]
        usedRom:
          type: number
          description: used ROM [MB]
        availableRom:
          type: number
          description: available ROM [MB]
      required:
        - systemState
        - elapsedTimeSinceStart
        - usedRom
        - availableRom
    DeviceTemperatures:
      title: DeviceTemperatures
      type: object
      description: Measured temperature values at different locations of the wallbox.
      properties:
        relayTemperature:
          type: number
          description: Relay temperature [°Celsius]
        inputPathTemperature:
          type: number
          description: Input path temperature [°Celsius]
        outputPathTemperature:
          type: number
          description: Output path temperature [°Celsius]
        powerControllerTemperature:
          type: number
          description: Power controller temperature [°Celsius]
        communicationControllerTemperature:
          type: number
          description: Communication controller temperature  [°Celsius]
        eMmcTemperature:
          type: number
          description: eMMC temperature [°Celsius]
      required:
        - relayTemperature
        - inputPathTemperature
        - outputPathTemperature
        - powerControllerTemperature
        - communicationControllerTemperature
        - eMmcTemperature
    ValidationError:
      title: ValidationError
      type: object
      properties:
        property:
          type: string
          description: Affected property of validation error
        error:
          type: string
          description: Error key for validation error
          enum:
            - isBlank
            - wrongFormat
            - outOfBoundary
            - tooSmall
            - tooBig
            - passwordInvalid
            - incorrectPassword
            - fileSizeTooBig
            - notUnique
            - semanticError
            - tooManyAllowListVehicles
            - tooManyAllowListRfidCards
            - tooManyAllowListEntries
        parameters:
          type: array
          description: |-
            Additional parameters for the given error if necessary

            tooSmall: [boundary value]
            tooBig: [boundary value]
            fileSizeTooBig: [boundary value]
            outOfBoundary: [minimum boundary value, maximum boundary value]
            wrongFormat: [example for correct format]
            tooManyAllowListVehicles: [boundary value]
            tooManyAllowListRfidCards: [boundary value]
            tooManyAllowListEntries: [vehicles boundary value, rfid cards boundary value]
          items:
            type: string
      required:
        - property
        - error
      description: |-
        Information designating a data validation error.

        Meaning of error keys:

        - passwordInvalid: password does not conform to password rules
        - incorrectPassword: incorrect password
    RelaisSwitchStateRead:
      title: RelaisSwitchStateRead
      type: object
      properties:
        value:
          type: string
          enum:
            - onePhase
            - threePhase
            - notAvailable
            - switchInProgress
            - notPossible
        mode:
          type: string
          enum:
            - manual
            - automatic
        limitationReason:
          type: string
          enum:
            - plcLimitation
            - hlcLimitation
            - gridLimitation
        currentState:
          type: string
          enum:
            - onePhase
            - threePhase
      required:
        - value
    RelaisSwitchStateWrite:
      title: RelaisSwitchStateWrite
      type: object
      properties:
        value:
          type: string
          enum:
            - onePhase
            - threePhase
            - automatic
      required:
        - value
    Available:
      title: Available
      type: object
      properties:
        available:
          type: boolean
      required:
        - available
    MaxPhaseCurrent:
      title: MaxPhaseCurrent
      type: object
      properties:
        value:
          type: string
          enum:
            - max6A
            - max8A
            - max10A
            - max13A
            - max15A
            - max16A
            - max20A
            - max25A
            - max30A
            - max32A
      required:
        - value
    Required:
      title: Required
      type: object
      properties:
        required:
          type: boolean
      required:
        - required
    PhaseType:
      title: PhaseType
      type: object
      properties:
        value:
          type: string
          enum:
            - onePhase
            - threePhases
      required:
        - value
    SolarEnergyShare:
      title: SolarEnergyShare
      type: object
      properties:
        inPercent:
          type: integer
          description: Solar energy share in [%]
    OffPeakTimeChargingPlans:
      title: OffPeakTimeChargingPlans
      type: object
      properties:
        plan1:
          $ref: '#/components/schemas/OffPeakTimeChargingPlan'
        plan2:
          $ref: '#/components/schemas/OffPeakTimeChargingPlan'
        plan3:
          $ref: '#/components/schemas/OffPeakTimeChargingPlan'
        plan4:
          $ref: '#/components/schemas/OffPeakTimeChargingPlan'
        plan5:
          $ref: '#/components/schemas/OffPeakTimeChargingPlan'
      required:
        - plan1
        - plan2
        - plan3
        - plan4
        - plan5
    OffPeakTimeChargingPlan:
      title: OffPeakTimeChargingPlan
      type: object
      properties:
        enabled:
          type: boolean
        monday:
          type: boolean
        tuesday:
          type: boolean
        wednesday:
          type: boolean
        thursday:
          type: boolean
        friday:
          type: boolean
        saturday:
          type: boolean
        sunday:
          type: boolean
        startTime:
          type: string
          format: HH:MM
        endTime:
          type: string
          format: HH:MM
      required:
        - enabled
    RandomisedDelay:
      title: RandomisedDelay
      type: object
      properties:
        enabled:
          type: boolean
        lowerBoundary:
          type: number
        upperBoundary:
          type: number
      required:
        - enabled
    ChargingSession:
      title: ChargingSession
      type: object
      properties:
        id:
          type: string
          description: The identifier of the session
        startDateTime:
          type: string
          format: date-time
          description: The start date and time of the session.
        energyConsumption:
          type: number
          description: Energy consumption in [Wh] during the session
        chargingCost:
          $ref: '#/components/schemas/ChargingCost'
        authorizationCause:
          $ref: '#/components/schemas/AuthorizationCause'
        duration:
          type: string
          description: Duration in [hh:mm:ss]
        brand:
          type: string
          description: The brand of the vehicle.
        model:
          type: string
          description: The model of the vehicle.
        name:
          type: string
          description: The name of the vehicle.
        meterStart:
          type: number
          description: Meter start in [kWh] during the session
        meterEnd:
          type: number
          description: Meter end in [kWh] during the session
        authorizationToken:
          type: string
          description: authorization token depending on authorization cause
      required:
        - id
        - startDateTime
        - energyConsumption
        - authorizationCause
        - duration
    Certificates:
      title: Certificates
      type: object
      description: Certificates at the device
      properties:
        device:
          $ref: '#/components/schemas/ContextCertificates'
        ocpp:
          $ref: '#/components/schemas/ContextCertificates'
        plugNChargePrivateEnvironment:
          $ref: '#/components/schemas/ContextCertificates'
        plugNChargePublicEnvironment:
          $ref: '#/components/schemas/ContextCertificates'
        webServer:
          $ref: '#/components/schemas/ContextCertificates'
    ContextCertificates:
      title: ContextCertificates
      type: object
      properties:
        leaf:
          $ref: '#/components/schemas/Certificate'
        subCAs:
          type: array
          items:
            $ref: '#/components/schemas/Certificate'
        rootCA:
          $ref: '#/components/schemas/Certificate'
    Certificate:
      title: Certificate information
      type: object
      description: >-
        The decoded certificate is formatted as openssl prints a certificate. Newlines are encoded as '\n' and space is
        used for indentation.
      properties:
        decoded:
          type: string
          description: Decoded certificate as openssl prints a certificate as text
      required:
        - decoded
    EncryptionPassword:
      title: EncryptionPassword
      type: object
      description: A password that is used for encrypting files
      properties:
        encryptionPassword:
          type: string
      required:
        - encryptionPassword
    LastImport:
      title: LastImport
      type: object
      properties:
        lastImport:
          type: string
          format: date-time
      required:
        - lastImport
      description: ''
    CableDetectionStateRead:
      title: CableDetectionStateRead
      type: object
      properties:
        value:
          type: string
          enum:
            - connected
            - notConnected
            - notAvailable
      required:
        - value
    GeoLocation:
      title: GeoLocation
      type: object
      description: Geo Location
      properties:
        value:
          type: string
      required:
        - value
    PvOptimizationModeRead:
      title: PvOptimizationModeRead
      type: object
      properties:
        value:
          type: string
          enum:
            - noPV
            - pvOnly
            - pvPlus
      required:
        - value
    PvOptimizationModeWrite:
      title: PvOptimizationModeWrite
      type: object
      properties:
        value:
          type: string
          enum:
            - noPV
            - pvOnly
            - pvPlus
      required:
        - value
    TimeFormat:
      title: TimeFormat
      type: object
      description: Time format
      properties:
        value:
          type: string
          enum:
            - twelveHourTime
            - twentyFourHourTime
      required:
        - value
    GridSettingNumericValue:
      type: object
      properties:
        value:
          type: number
        min:
          type: number
        max:
          type: number
        resolution:
          type: number
        unit:
          type: string
          description: Unit of measurement, e.g., 'kW', 'V', 'A'.
      required:
        - value
        - min
        - max
    GridSettingIntegerValue:
      type: object
      properties:
        value:
          type: integer
        min:
          type: integer
        max:
          type: integer
        resolution:
          type: integer
        unit:
          type: string
          description: Unit of measurement, e.g., 'kW', 'V', 'A'.
      required:
        - value
        - min
        - max
    CountryCodeGridSettings:
      type: object
      properties:
        code:
          type: string
        defaults:
          $ref: '#/components/schemas/V2GSettings'
      required:
        - code
        - defaults
    V2GSettingsRead:
      type: object
      properties:
        evseCountryInfo:
          type: string
          description: Country in which EVSE is installed (e.g., DK1, DK2)
        maxAsymmetryLimit:
          $ref: '#/components/schemas/GridSettingIntegerValue'
        lowerFrequencyStartupCheck:
          $ref: '#/components/schemas/GridSettingNumericValue'
        upperFrequencyStartupCheck:
          $ref: '#/components/schemas/GridSettingNumericValue'
        lowerVoltageStartupCheck:
          $ref: '#/components/schemas/GridSettingIntegerValue'
        upperVoltageStartupCheck:
          $ref: '#/components/schemas/GridSettingIntegerValue'
        observationTimeStartupCheck:
          $ref: '#/components/schemas/GridSettingIntegerValue'
        controlMode:
          type: integer
          description: |
            Reactive power control mode:
            * 0 = Disable Q support
            * 1 = Q setpoint
            * 2 = Cos∅ setpoint
            * 3 = Q(U) according to predefined Q-U characteristics
            * 4 = Cos∅(P) according to predefined PF-P characteristics
          minimum: 0
          maximum: 4
        qSet:
          $ref: '#/components/schemas/GridSettingNumericValue'
        pfSet:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableBrandSpecificStartupMode:
          type: boolean
          description: Enable or Disable Brand specific Startup function
        enableStartupFunctionForAllServices:
          type: boolean
          description: Enable function for all charging services
        evseServiceUnavailable:
          type: boolean
          description: EVSE is unavailable for operation due to grid disturbance
        enableLfsmU:
          type: boolean
          description: Enable or disable LFSM-U
        enableLfsmO:
          type: boolean
          description: Enable or disable LFSM-O
        thresholdUnderFrequency:
          $ref: '#/components/schemas/GridSettingNumericValue'
        droopUnderFrequency:
          $ref: '#/components/schemas/GridSettingIntegerValue'
        thresholdOverFrequency:
          $ref: '#/components/schemas/GridSettingNumericValue'
        droopOverFrequency:
          $ref: '#/components/schemas/GridSettingIntegerValue'
        thresholdOverVoltage1Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeOverVoltage1Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        thresholdUnderVoltage1Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeUnderVoltage1Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableOV1prot:
          type: boolean
          description: Enable or disable OV1-prot
        enableOV2prot:
          type: boolean
          description: Enable or disable OV2-prot
        thresholdOverVoltage2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeOverVoltage2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableUV1prot:
          type: boolean
          description: Enable or disable UV1_prot
        enableUV2prot:
          type: boolean
          description: Enable or disable UV2_prot
        thresholdUnderVoltage2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeUnderVoltage2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enable10minOVprot:
          type: boolean
          description: Enable or disable Enable_10min_OV_prot
        thresholdOverVoltage10minFault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeOverVoltage10minFault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableOFprot:
          type: boolean
          description: Enable or disable Enable_OF_prot
        thresholdOverFrequencyFault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeOverFrequencyFault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableOF2prot:
          type: boolean
          description: Enable or disable Enable_OF2_prot
        thresholdOverFrequency2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeOverFrequency2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableUF1prot:
          type: boolean
          description: Enable or disable Enable_UF1_prot
        thresholdUnderFrequency1Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeUnderFrequency1Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableUF2prot:
          type: boolean
          description: Enable or disable Enable_UF2_prot
        thresholdUnderFrequency2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        timeUnderFrequency2Fault:
          $ref: '#/components/schemas/GridSettingNumericValue'
        enableExternalInterfaceProtection:
          type: boolean
          description: Enable or disable ExternalInterfaceProtection
      required:
        - evseCountryInfo
        - maxAsymmetryLimit
        - lowerFrequencyStartupCheck
        - upperFrequencyStartupCheck
        - lowerVoltageStartupCheck
        - upperVoltageStartupCheck
        - observationTimeStartupCheck
        - controlMode
        - qSet
        - pfSet
        - enableBrandSpecificStartupMode
        - enableStartupFunctionForAllServices
        - evseServiceUnavailable
        - enableLfsmU
        - enableLfsmO
        - thresholdUnderFrequency
        - droopUnderFrequency
        - thresholdOverFrequency
        - droopOverFrequency
        - thresholdOverVoltage1Fault
        - timeOverVoltage1Fault
        - thresholdUnderVoltage1Fault
        - timeUnderVoltage1Fault
        - enableOV1prot
        - enableOV2prot
        - thresholdOverVoltage2Fault
        - timeOverVoltage2Fault
        - enableUV1prot
        - enableUV2prot
        - thresholdUnderVoltage2Fault
        - timeUnderVoltage2Fault
        - enable10minOVprot
        - thresholdOverVoltage10minFault
        - timeOverVoltage10minFault
        - enableOFprot
        - thresholdOverFrequencyFault
        - timeOverFrequencyFault
        - enableOF2prot
        - thresholdOverFrequency2Fault
        - timeOverFrequency2Fault
        - enableUF1prot
        - thresholdUnderFrequency1Fault
        - timeUnderFrequency1Fault
        - enableUF2prot
        - thresholdUnderFrequency2Fault
        - timeUnderFrequency2Fault
        - enableExternalInterfaceProtection
    V2GSettings:
      type: object
      properties:
        evseCountryInfo:
          type: string
          description: Country in which EVSE is installed (e.g., DK1, DK2)
        maxAsymmetryLimit:
          type: integer
          description: Value for maximum allowed asymmetry at grid connection point [A]
        lowerFrequencyStartupCheck:
          type: number
          description: Value for lower frequency Startup function [Hz]
        upperFrequencyStartupCheck:
          type: number
          description: Value for upper frequency Startup function [Hz]
        lowerVoltageStartupCheck:
          type: integer
          description: Value for lower voltage Startup function [% Un]
        upperVoltageStartupCheck:
          type: integer
          description: Value for upper voltage Startup function [% Un]
        observationTimeStartupCheck:
          type: integer
          description: Value for observation time Startup function [s]
        controlMode:
          type: integer
          description: |
            Reactive power control mode:
            * 0 = Disable Q support
            * 1 = Q setpoint
            * 2 = Cos∅ setpoint
            * 3 = Q(U) according to predefined Q-U characteristics
            * 4 = Cos∅(P) according to predefined PF-P characteristics
          minimum: 0
          maximum: 4
        qSet:
          type: number
          description: Value for reactive power control - Q setpoint
        pfSet:
          type: number
          description: Value for reactive power control - Power factor setpoint
        enableBrandSpecificStartupMode:
          type: boolean
          description: Enable or disable brand-specific Startup function
        enableStartupFunctionForAllServices:
          type: boolean
          description: Enable or disable function for all charging services
        evseServiceUnavailable:
          type: boolean
          description: EVSE is unavailable for operation due to grid disturbance
        enableLfsmU:
          type: boolean
          description: Enable or disable LFSM-U
        enableLfsmO:
          type: boolean
          description: Enable or disable LFSM-O
        thresholdUnderFrequency:
          type: number
          description: At this frequency the active power response to under frequency is activated
        droopUnderFrequency:
          type: integer
          description: Programmable droop is the frequency-dependent active power
        thresholdOverFrequency:
          type: number
          description: At this frequency the active power response to over frequency is activated
        droopOverFrequency:
          type: integer
          description: Programmable droop is the frequency-dependent active power
        thresholdOverVoltage1Fault:
          type: number
          description: Over voltage threshold stage 1
        timeOverVoltage1Fault:
          type: number
          description: Over voltage threshold stage 1 disconnection time
        thresholdUnderVoltage1Fault:
          type: number
          description: Under voltage threshold stage 1
        timeUnderVoltage1Fault:
          type: number
          description: Under voltage threshold stage 1 disconnection time
        enableOV1prot:
          type: boolean
          description: Enable or disable OV1-prot
        enableOV2prot:
          type: boolean
          description: Enable or disable OV2-prot
        thresholdOverVoltage2Fault:
          type: number
          description: Over voltage threshold stage 2
        timeOverVoltage2Fault:
          type: number
          description: Over voltage threshold stage 2 disconnection time
        enableUV1prot:
          type: boolean
          description: Enable or disable UV1_prot
        enableUV2prot:
          type: boolean
          description: Enable or disable UV2_prot
        thresholdUnderVoltage2Fault:
          type: number
          description: Under voltage threshold stage 2
        timeUnderVoltage2Fault:
          type: number
          description: Under voltage threshold stage 2 disconnection delay time
        enable10minOVprot:
          type: boolean
          description: Enable or disable Enable_10min_OV_prot
        thresholdOverVoltage10minFault:
          type: number
          description: Overvoltage 10 min mean threshold
        timeOverVoltage10minFault:
          type: number
          description: Overvoltage 10 min mean disconnection delay time
        enableOFprot:
          type: boolean
          description: Enable or disable Enable_OF_prot
        thresholdOverFrequencyFault:
          type: number
          description: Over frequency threshold stage 1
        timeOverFrequencyFault:
          type: number
          description: Over frequency threshold stage 1 disconnection delay time
        enableOF2prot:
          type: boolean
          description: Enable or disable Enable_OF2_prot
        thresholdOverFrequency2Fault:
          type: number
          description: Over frequency threshold stage 2
        timeOverFrequency2Fault:
          type: number
          description: Over frequency threshold stage 2 disconnection delay time
        enableUF1prot:
          type: boolean
          description: Enable or disable Enable_UF1_prot
        thresholdUnderFrequency1Fault:
          type: number
          description: Under frequency threshold stage 1
        timeUnderFrequency1Fault:
          type: number
          description: Under frequency threshold stage 1 disconnection delay time
        enableUF2prot:
          type: boolean
          description: Enable or disable Enable_UF2_prot
        thresholdUnderFrequency2Fault:
          type: number
          description: Under frequency threshold stage 2
        timeUnderFrequency2Fault:
          type: number
          description: Under frequency threshold stage 2 disconnection delay time
        enableExternalInterfaceProtection:
          type: boolean
          description: Enable or disable ExternalInterfaceProtection
      required:
        - evseCountryInfo
        - maxAsymmetryLimit
        - lowerFrequencyStartupCheck
        - upperFrequencyStartupCheck
        - lowerVoltageStartupCheck
        - upperVoltageStartupCheck
        - observationTimeStartupCheck
        - controlMode
        - qSet
        - pfSet
        - enableBrandSpecificStartupMode
        - enableStartupFunctionForAllServices
        - evseServiceUnavailable
        - enableLfsmU
        - enableLfsmO
        - thresholdUnderFrequency
        - droopUnderFrequency
        - thresholdOverFrequency
        - droopOverFrequency
        - thresholdOverVoltage1Fault
        - timeOverVoltage1Fault
        - thresholdUnderVoltage1Fault
        - timeUnderVoltage1Fault
        - enableOV1prot
        - enableOV2prot
        - thresholdOverVoltage2Fault
        - timeOverVoltage2Fault
        - enableUV1prot
        - enableUV2prot
        - thresholdUnderVoltage2Fault
        - timeUnderVoltage2Fault
        - enable10minOVprot
        - thresholdOverVoltage10minFault
        - timeOverVoltage10minFault
        - enableOFprot
        - thresholdOverFrequencyFault
        - timeOverFrequencyFault
        - enableOF2prot
        - thresholdOverFrequency2Fault
        - timeOverFrequency2Fault
        - enableUF1prot
        - thresholdUnderFrequency1Fault
        - timeUnderFrequency1Fault
        - enableUF2prot
        - thresholdUnderFrequency2Fault
        - timeUnderFrequency2Fault
        - enableExternalInterfaceProtection
    V2GGridRegulationsRead:
      type: object
      title: V2GGridRegulationsRead
      properties:
        powerDelayTime:
          $ref: '#/components/schemas/GridSettingNumericValue'
        underVoltageThreshold:
          $ref: '#/components/schemas/GridSettingNumericValue'
        underVoltageMeasurementTime:
          $ref: '#/components/schemas/GridSettingNumericValue'
      required:
        - powerDelayTime
        - underVoltageThreshold
        - underVoltageMeasurementTime
    V2GGridRegulations:
      type: object
      title: V2GGridRegulations
      properties:
        powerDelayTime:
          type: number
        underVoltageThreshold:
          type: number
        underVoltageMeasurementTime:
          type: number
      required:
        - powerDelayTime
        - underVoltageThreshold
        - underVoltageMeasurementTime
    DeviceUsage:
      title: DeviceUsage
      type: object
      properties:
        value:
          type: string
          enum:
            - public
            - private
      required:
        - value
    EuDataExportFormat:
      type: array
      items:
        type: object
        properties:
          identifier:
            type: string
            description: the name of the data point
          description:
            type: string
            description: a human readble descrption of what this data point represents
          value:
            type: object
            nullable: true
            description: the value of datapoint. can be of any data type as each datapoint can be different
  parameters:
    vehicleId:
      name: vehicleId
      in: path
      required: true
      schema:
        type: string
      description: a vehicle ID
    eebusDeviceSki:
      name: eebusDeviceSki
      in: path
      required: true
      schema:
        type: string
      description: 'Identifier of eebus device in format: ski'
    rfidCardId:
      name: rfidCardId
      in: path
      required: true
      schema:
        type: string
  securitySchemes:
    JWT-technician:
      type: http
      scheme: bearer
    JWT-user:
      type: http
      scheme: bearer
tags:
  - name: Internal
