openapi: 3.0.1
info:
  title: KNX Point API
  description:  |
    # Introduction
    This KNX IoT Point API offers an access to peripheral devices of an Installation. KNX IoT uses the Internet Protocol (IP) suite standards for transmission of KNX IoT Application Layer data across IP networks.
    These may contain unicast TCP or UDP frames or multicast UDP frame transmission of KNX IoT application data. KNX IoT application data is agnostic to the underlaying communication layers.
    
    A common (IP based) interworking infrastructure allows heterogeneous data link media to work seamlessly with each other. The Point API provides a mapping of KNX AL data to a RESTful CoAP resource model and CBOR/JSON based data representation that is used to communicate over IP. Using this API, a client can read/write values or can subscribe to point events (e.g., switch on/off).

    ## Versioning and Relations
    The here specified API version (OAS element **openapi** )
    - is also included in the response of the device API version information, for more details see /.well-known/knx 
    - corresponds to the KNX specification 3/10/5 with the version 1.0.0


  termsOfService: 'http://knx.org'
  contact:
    email: support@knx.org
  license:
    name: MIT License
    url: 'https://opensource.org/licenses/MIT'
  version: 1.0.0
servers:
  - url: <knx-device-ip>
tags:
  - name: Discovery
    description: Resource discovery and IP address resolution
  - name: Device
    description: Devices and commands
  - name: Security
    description: Security configuration
  - name: S-Mode Messaging
    description: Group messages
  - name: Function Point Tables
    description: Function Point Table and Group Address configuration
  - name: Actions
    description: Device actions and commands.
  - name: Application Functionalblocks
    description: Application Functionalblocks
  - name: Properties (Datapoints)
    description: Parameter or diagnostic properties including metadata fields
  - name: Subscriptions
    description: Point Webhook and Observe subscriptions.

paths:
  /.well-known/core:
    description: Devices implement the /.well-known/core interface for discovery of devices and resources. The interface is adressed over multicast to [FF02::FD] and paramters are used to filter for relevant devices. 
    servers: 
    - url: "all devices multicast"
    get: 
      tags: 
      - Discovery
      summary: Common resouce discovery endpoint on all nodes reachable w/ unicast and multicast (discovery transaction)
      description:  Devices implement the /.well-known/core interface for discovery of devices and resources. The interface is adressed over multicast to [FF02::FD] and paramters are used to filter for relevant devices.  
      operationId: discoverPoints
      parameters:
        - name: ep
          in: query
          required: false
          schema:
            type: string
          description: the argument of the ep query is a serial number of the device, e.g. urn:knx:sn.<serial-number>  
        - name: rt
          in: query
          required: false
          schema:
            type: string
          description: The resource type ‘rt’ for discovering specific entity types (see [RFC6690] clause 3.1). 
        - name: if
          in: query
          required: false
          schema:
            type: string
          description: the argument of the if query is either a indictaion that the device is in programming mode, i.e. urn:pll:pm or a query for devices that have a specific individual address, i.e. urn:knx:ia.<individual adress\>
        - name: d
          in: query
          required: false
          schema:
            type: string
          description: The sector ‘d’ is a logical grouping of endpoints and used for discovering groups of points.
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content  <br> The link format document is expected to contain the serial numer of the device in the ep parameter. The IP address of the discovered device is conveyed via the origin address of the unicast response.
          content:
            application/link-format:
              schema: 
                type: string
              examples:
                core:
                  value: | 
                    </dev>;rt="urn:knx:fb.0";ct=40,
                    </auth>;ct=40,
                    </swu>;ct=40,
                    </.knx>;ct=60,
                    </f/rts>;rt="urn:knx:fb.321";ct=40,
                    </f/rrhs>;rt="urn:knx:fb.337";ct=40
                rt=urn:knx:fb.321:
                  value:
                    </f/rts>;rt="urn:knx:fb.321";ct=40
                ep=urn:knx:sn.12345678:
                  value:
                    <>;ep="urn:knx:sn.12345678"
                if=urn:knx:if.o:
                  value:
                    </p/rts/temproom>;rt="urn:knx:dpa.321.51";ct=50
                d=urn:knx:g.s.1234:
                  value:
                    </p/rts/temproom>;rt="urn:knx:dpa.321.51";ct=50
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"
  
  /.well-known/knx:
    post:
      tags:
        - Device
      summary: Device restart and reset commands (invoke transaction)
      description: |-
        A MaC sends command to the device such as reset or restart

        JSON/CBOR mapping: value=1 cmd=2
      operationId: commandDevice
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Device.Command.Profile.PostRequest-v0.json"
            examples:
              Device Restart Command:
                value:
                  "2": "restart"
              Device Reset Command:
                value:
                  "2": "reset"
                  "1": 1
      responses:
        "205": 
          description: OK - CoAP 2.05 Content
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                  
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Device
      summary: Common device interface infomation
      description: Read common device information such as API version and base path
      operationId: getDeviceInterfaceInformation
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/json:
              schema: 
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Device.WellKnownKnx.Profile.GetRequest-v0.json"
              example:
                api:
                  version: "1.0"
                  base: /
            application/cbor:
              schema: 
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Device.WellKnownKnx.Profile.GetRequest-v0.json"
              example:
                api:
                  version: "1.0"
                  base: /
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /a/lsm:
    post:
      tags:
        - Actions
      summary: Device load state machine commands e.g. for commissioning (invoke transaction)
      description: |-
        A MaC sends command to the device that triggers a activity or process. The activity has states such as the load state machine state etc.
        
        JSON/CBOR mapping: cmd=2, status=3
      operationId: deviceLsmCommands
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Action.Command.Profile.PostRequest-v0.json"
            examples:
              Load Function Point Table State Machine:
                value:
                  "2": "load"
              Unload Function Point Table State Machine:
                value:
                  "2": "unload"
              Complete load Function Point Table State Machine:
                value:
                  "2": "loadcomplete"         
      responses:
        "205": 
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Action.State.Profile.GetResponse-v0.json"
              examples:
                Function Point Table Load State Machine Status:
                  value:
                    "3": "loaded"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                  
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Actions
      summary: Device load state machine status
      description: Read current actionor command state
      operationId: getLsmState
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema: 
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Action.State.Profile.GetResponse-v0.json"
              examples:
                Function Point Table Load State Machine Status:
                  value:
                    "3": "loaded"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /a/swu:
    post:
      tags:
        - Actions
      summary: Software update PULL command (invoke transaction)
      description:  |-
        A MaC sends command to the device that triggers a activity or process. The activity has states such as the load state machine state etc.
      
        JSON/CBOR mapping: cmd=2, pkgq=29, { mid=4, hwt=5, prot=8, pkgv=10, pkgurl=11, pkgt=12, pkgs=13, po=14, ps=15 }
      operationId: deviceSwuCommands
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Action.Command.Profile.PostRequest-v0.json"
            examples:
              Trigger software update (PULL):
                value:
                  "2": "start"
                  "29":
                    "4": 123
                    "5": 456
                    "8": [6]
                    "10": [1,2,3]
                    "11": "coap://swus.knx.local/firmware:61630"
                    "12": 0
                    "13": 23
              Resume software update (PULL):
                value:
                  "2": "start"
                  "29":
                    "4": 123
                    "5": 456
                    "8": [6]
                    "10": [1,2,3]
                    "11": "coap://swus.knx.local/firmware:61630"
                    "12": 0
                    "13": 23
                    "14": 2345
                    "15": 500                  
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                  
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    put:
      tags:
        - Actions
      summary: Software update PUSH (invoke transaction)
      description:  |-
        A MaC writes a software package to the device.
      operationId: deviceSwuWrite
      parameters:
        - $ref: "#/components/parameters/packageOffset"
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                  
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /a/sen:
    post:
      tags:
        - Actions
      summary: X.509 certificate (LDevID) enrollment command (invoke transaction)
      description:  |-
        A MaC sends command to the device that triggers a activity or process. The activity has states such as the load state machine state etc.
      
        JSON/CBOR mapping: cmd=2
      operationId: deviceSenCommand
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Action.Command.Profile.PostRequest-v0.json"
            examples:
              Operational Device Certificate (LDevID) Renewal:
                value:
                  "2": "renew"              
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                  
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /.well-known/knx/osn:
    get:
      tags:
        - Device
      summary: OSCORE sequence number
      description: Read current OSCORE sequence number for synchronization
      operationId: readOsnProperty
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.GetResponse-v0.json"
              examples:
                Value:
                  value: 334567834
            application/json:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.GetResponse-v0.json"
              examples:
                Value:
                  value: 334567834
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /.well-known/knx/crc:
    get:
      tags:
        - Device
      summary: Function point table checksum
      description: Read current funtion point table checksum in order to identify a particular configuration
      operationId: readCrcProperty
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.GetResponse-v0.json"
              examples:
                Value:
                  value: 132768923564196
            application/json:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.GetResponse-v0.json"
              examples:
                Value:
                  value: 132768923564196
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /dev:
    get:
      tags:
        - Device
      summary: Read link list of Device functionalblock properties
      description: Read linked list of Points that belong to the Device
      operationId: getDevFunctionalblock
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              example: | 
                </dev/model>;ct=50 60,
                </dev/sn>;rt="dpa.0.11 dpt.serNum";ct=50 60,
                </dev/fwv>;rt="dpa.0.25 dpt.version";ct=50 60,
                </dev/hwt>;rt="dpt.varString8859_1";ct=50 60,
                </dev/model>;rt="dpt.utf8";ct=50 60,
                </dev/ia>;rt="dpt.value2Ucount";ct=50 60,
                </dev/hname>;rt="dpt.varString8859_1";ct=50 60,
                </dev/iid>;rt="dpt.value4Ucount";ct=50 60,
                </dev/pm>;rt="dpt.binaryValue";ct=50 60
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /swu:
    get:
      tags:
        - Device
      summary: Read link list of software update functionalblock properties
      description: Read linked list of Points that belong to the Software Update Functionalblock
      operationId: getSwuFunctionalblock
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              example: | 
                </swu/pkg>;rt="dpt.file";ct=42,
                </swu/pkgnames>;rt="dpt.varString8859_1";ct=60,
                </swu/pkgbytes>;rt="dpt.value4UCount";ct=60,
                </swu/pkgv>;rt="dpt.version";ct=60,
                </swu/update>;rt="dpt.value2UCount";ct=60,
                </swu/state>;rt="dpt.value1UCount";ct=60,
                </swu/result>;rt="dpt.value1UCount";ct=60,
                </swu/lastupdate>;rt="dpt.varString8859_1";ct=60,
                </swu/method>;rt="dpt.value1UCount";ct=60,
                </swu/protocol>;rt="dpt.value1UCount";ct=60
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /.well-known/knx/spake:
    post:
      tags:
        - Security
      summary: Device authentication and negotiation of temporary credentials (invoke transaction)
      description: |-
        Credential negotiation based on a shared password

        JSON/CBOR mapping: salt=5, pa=10, pb11=, pbkdf=12, cb=13,  ca=14, rnd=15, it=16,
      operationId: writePase
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/PASE.Profile.PostRequest-v0.json"
            examples:
              PASE Parameter Request:
                value:
                  "15": "123456789"
              PASE Credential Request:
                value:
                  "10": "b6b8…95c9"
              PASE Credential Verification:
                value:
                  "14": "8964…d887"
      responses:
        "205": 
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/PASE.Profile.PostResponse-v0.json"
              examples:
                PASE Parameter Response:
                  value:
                    "15": "987654321"
                    "12":
                      "16": 100
                      "5": knx-iot
                PASE Credential Response:
                  value:
                    "11": "9876…aa98"
                    "13": "a987…c3874"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "402":
          $ref: "#/components/responses/BadOption402"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"           
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /.well-known/knx/idevid:
    get:
      tags:
        - Security
      summary: Read maufacturer device certificate (IDevID)
      description: read the maufacturer device certificate (IDevID)
      operationId: readIDevID
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
            application/pkcs7-mime:
              schema:
                type: string
              example: "<x.509 certificate idevid>"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /.well-known/knx/ldevid:
    get:
      tags:
        - Security
      summary: Read operational device certificate (LDevID)
      description: read the operational device certificate (LDevID)
      operationId: readLDevID
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
            application/pkcs7-mime:
              schema:
                type: string
              example: "<x.509 certificate ldevid>"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /auth:
    get:
      tags:
        - Security
      summary: Read all security functionalblock properties (linked list)
      description: Read linked list of Points that belong to the Security Functionalblock
      operationId: getAuthFunctionalblock
      parameters:
        - $ref: "#/components/parameters/collectionOffset"      
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              example: | 
                </auth/idevid>;ct=281,
                </auth/certs>;ct=40 50,
                </auth/at>;ct=40 50
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /auth/crts:
    post:
      tags:
        - Security
      summary: Configure a list of trusted credentials (collection write transaction)
      description: Configuration of the trust list w/ device certificates or CA certificates which are trusted for authentication. 
      operationId: writeCredentials
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
            application/pkcs7-mime:
              schema:
                type: string
              example: "<x.509 certificate>"
        "231":
          $ref: "#/components/responses/Continue231"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "408":
          $ref: "#/components/responses/RequestEntityIncomplete408"
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Security
      summary: Read all configured trusted credentials (linked list)
      description: The trust list contains a list of device certificates or CA certificates which are trusted for authentication. 
      operationId: readCredentials
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
            application/link-format:
              schema: 
                type: string
              example: |
                </crts/88675468668>;ct=50,
                </crts/29473458934>;ct=50
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /auth/crts/{kid}:
    delete:
      tags:
        - Security
      summary: Delete  a credential in the trust list
      description: delete credential in the trust list
      operationId: deleteCredentials
      parameters:
        - name: kid
          in: path
          required: true
          schema:
            type: string
      responses:
        "202":
          description: OK - CoAP 2.02 Deleted
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /auth/at:
    post:
      tags:
        - Security
      summary: Configure a list of access tokens (collection write transaction)
      description: Configuration of access tokens. The access token contains the credential and for which scope the credential is valid.
      operationId: writeAccessToken
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/AccessToken.Profile.Collection-v0.json"
            example:
              - "0": "OC5BLLhkAG..."
                "9": ["if.g.s.<ga>"]
                "19": "coap_oscore"
                "8":
                  "4":
                    "2": "f9af8….6bd94e6f"
                    "4": "AES-CCM-16-64-128"
                    "6": "<contextId>"
              - "0": "OC5BLLhkAG..."
                "2": "<asn-system-id.ldevid>"
                "9": ["if.sec"]
                "19": "coap_dtls"
                "8":
                  "3": "<kid>"
      responses:
        "204":
          description: OK - CoAP 2.04 Changed
        "231":
          $ref: "#/components/responses/Continue231"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "408":
          $ref: "#/components/responses/RequestEntityIncomplete408"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Security
      summary: Read all configured access tokens (linked list)
      description: Response contains a list with configured access tokens on the device
      operationId: readAccessTokens
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "204":
          description: OK - CoAP 2.04 Changed
          content:
            application/link-format:
              schema: 
                type: string
              example: |
                </auth/at/1324758716598>;ct=50,
                </auth/at/4978978765786>;ct=50
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /auth/at/{access-token-id}:
    get:
      tags:
        - Security
      summary: Read access token item
      description: |-
        Read access tokens

        JSON/CBOR mapping:  access_token/id=0, sub=2, cnf=8, scope=9, ace_profile/profile=19, { kid=3, osc=4, { ms=2, alg=4, contextId=6 } }
      operationId: readAccessToken
      parameters:
        - name: access-token-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/AccessToken.Profile.Item-v0.json"
              examples:
                OSCORE access token:
                  value:
                    "0": "OC5BLLhkAG..."
                    "9": ["if.g.s.<ga>"]
                    "19": "coap_oscore"
                    "8":
                      "4":
                        "2": "f9af8….6bd94e6f"
                        "4": "AES-CCM-16-64-128"
                        "6": "<contextId>"
                X.509 access token:
                  value:
                    "0": "OC5BLLhkAG..."
                    "2": "<asn-system-id.ldevid>"
                    "9": ["if.sec"]
                    "19": "coap_dtls"
                    "8":
                      "3": "<kid>"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    delete:
      tags:
        - Security
      summary: Delete access token item
      description: Delete access tokens
      operationId: deleteAccessToken
      parameters:
        - name: access-token-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "202":
          description: OK - CoAP 2.02 Deleted
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /f/oscore:
    get:
      tags:
        - Security
      summary: Read link list of OSCORE properties
      description: Read linked list of Points that belong to the Software Update Functionalblock
      operationId: getOscoreFunctionalblock
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              example: | 
                </p/oscore/replwdo>;rt=dpt.value2UCount;ct=60,
                </p/oscore/osndelay>;rt=dpt.timePeriodMsec;ct=60
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /.knx:
    post:
      tags:
        - S-Mode Messaging
      summary: Receive group messages from Publisher either by unicast or multicast (invoke transaction)
      description: A Publisher can send message notification to the device (Recipient)  
      operationId: smodeNotification
      requestBody:
        description: |-
          The payload contains the source individual address, group address, service type code and data (value). The value is indicated here as JSON object, but depends on the property type of the group object and follows the encoding rules of datatypes given in section 4.2.8 (Datatype Mapping) of the KNX IoT specification.
          
          JSON/CBOR mapping:  value=1, s=5, st=6, ga=7
        content:
          application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/messaging/GroupNotificationResourceObject-v0.json"
              examples:
                Update OSCORE group write notification:                
                  value:
                    "5":
                      "6": "w"
                      "7": 1
                      "1": true
                Update OSCORE group read notification:
                  value:
                    "4": 1234
                    "5":
                      "6": "r"
                      "7": 3
                Update group write notification over (D)TLS:
                  value:
                    "4": 1234
                    "5":
                      "6": "w"
                      "7": 2
                      "1": true
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - S-Mode Messaging
      summary: Observe (CoAP) group messages from Publisher (event notification)
      description: A Recipient can observe (subscribe) message notification from the device (Publisher)  
      operationId: smodeObserve
      parameters:
        - $ref: "#/components/parameters/subLifetime"
        - $ref: "#/components/parameters/subConfirmedNotification"
      responses:
        "205":
          description: |-
            OK - CoAP 2.05 Content
            
            JSON/CBOR mapping:  value=1, s=5, st=6, ga=7
          content:
            application/cbor:
                schema:
                  $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/messaging/GroupNotificationResourceObject-v0.json"
                examples:
                  Publish OSCORE group write notification:                
                    value:
                      "5":
                        "6": "w"
                        "7": 1
                        "1": true
                  Publish OSCORE group read notification:
                    value:
                      "4": 1234
                      "5":
                        "6": "r"
                        "7": 3
                  Publish group write notification over (D)TLS:
                    value:
                      "4": 1234
                      "5":
                        "6": "w"
                        "7": 2
                        "1": true
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /fp/g:
    post:
      tags:
        - Function Point Tables
      summary: Configure function points (collection write transaction)
      description: |-
        Function Point table configuration for S-Mode messaging (group object, recipient and publisher table)

        JSON/CBOR mapping:  id=0, ga=7, cflags=8, href=11
      operationId: writeFunctionPointGroupObjects
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.GroupObject.Profile.PostRequest-v0.json"
            example:
              - "0": "1"
                "11": "/rts/roomtemp"
                "7": [2]
                "8": ["r", "w", "t"]
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "231":
          $ref: "#/components/responses/Continue231"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "408":
          $ref: "#/components/responses/RequestEntityIncomplete408"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Function Point Tables
      summary: Read all configured function point group objects (linked list)
      description: |- 
        Read linked list of function point group objects
        
        JSON/CBOR mapping:  id=0, ga=7, cflags=8, href=11
      operationId: readFunctionPointGroupObjects
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
        - $ref: "#/components/parameters/listMetadata"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.GroupObject.Profile.PostRequest-v0.json"
              example:
              - "0": "1"
                "11": "/rts/roomtemp"
                "7": [2]
                "8": ["r", "w", "t"]
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /fp/g/{groupobject-id}:
    get:
      tags:
        - Function Point Tables
      summary: Read configured function point group object
      description: |-
        Read function point group object
        
        JSON/CBOR mapping:  id=0, ga=7, cflags=8, href=11
      operationId: readFunctionPointGroupObject
      parameters:
        - name: groupobject-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
             application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.GroupObject.Profile.PostRequest-v0.json#/definitions/groupobject"
              example:
                "0": "1"
                "11": "/rts/roomtemp"
                "7": [2]
                "8": ["r", "w", "t"]
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /fp/r:
    post:
      tags:
        - Function Point Tables
      summary: Configure function points (collection write transaction)
      description: |-
        Function Point table configuration for S-Mode messaging (group object, recipient and publisher table)
        
        JSON/CBOR mapping:  id=0, ga=7, url=10, ia=12
      operationId: writeFunctionPointRecipients
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.Recipient.Profile.PostRequest-v0.json"
            example:
              - "0": "3"
                "12": "11:2222:3333.23"
                "7": [2305, 2306, 2307, 2308]
              - "0": "5"
                "10": "coap://1.gateway.knx.local/.knx"
                "7": [3305, 3306, 3307, 3308]
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "231":
          $ref: "#/components/responses/Continue231"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "408":
          $ref: "#/components/responses/RequestEntityIncomplete408"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Function Point Tables
      summary: Read all configured function point recipients (linked list)
      description: |-
        Read linked list of function point recipients

        JSON/CBOR mapping:  id=0, ga=7, url=10, ia=12
      operationId: readFunctionPointRecipients
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
        - $ref: "#/components/parameters/listMetadata"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.Recipient.Profile.PostRequest-v0.json"
              example:
              - "0": "3"
                "10": "coap://1.gateway.knx.local/.knx"
                "7": [2305, 2306, 2307, 2308]
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /fp/r/{recipient-id}:
    get:
      tags:
        - Function Point Tables
      summary: Read configured function point recipient
      description: |-
        Read configured function point recipient

        JSON/CBOR mapping:  id=0, ga=7, url=10, ia=12
      operationId: readFunctionPointRecipient
      parameters:
        - name: recipient-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
             application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.Recipient.Profile.PostRequest-v0.json#/definitions/recipient"
              example:
                "0": "3"
                "10": "coap://1.gateway.knx.local/.knx"
                "7": [2305, 2306, 2307, 2308]
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    delete:
      tags:
        - Function Point Tables
      summary: Delete configured function point recipient
      description:  Remove configured function point recipient
      operationId: deleteFunctionPointRecipient
      parameters:
        - name: recipient-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "202":
          description: OK - CoAP 2.02 Deleted
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /fp/p:
    post:
      tags:
        - Function Point Tables
      summary: Configure function points (collection write transaction)
      description: |-
        Function Point table configuration for S-Mode messaging (group object, recipient and publisher table)

        JSON/CBOR mapping:  id=0, ga=7, url=10, ia=12
      operationId: writeFunctionPointPublishers
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.Publisher.Profile.PostRequest-v0.json"
            example:
              - "0": "5"
                "10": "coap://1.gateway.knx.local/.knx"
                "7": [3305, 3306, 3307, 3308]
      responses:
        "204": 
          description: OK - CoAP 2.04 Changed
        "231":
          $ref: "#/components/responses/Continue231"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "408":
          $ref: "#/components/responses/RequestEntityIncomplete408"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"
          
    get:
      tags:
        - Function Point Tables
      summary: Read all configured function point publishers (linked list)
      description: |-
        Read linked list of function point publisher

        JSON/CBOR mapping:  id=0, ga=7, url=10, ia=12
      operationId: readFunctionPointPublishers
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
        - $ref: "#/components/parameters/listMetadata"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.Publisher.Profile.PostRequest-v0.json"
              example:
              - "0": "5"
                "10": "coap://1.gateway.knx.local/.knx"
                "7": [3305, 3306, 3307, 3308]
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /fp/p/{publisher-id}:
    get:
      tags:
        - Function Point Tables
      summary: Read configured function point publisher
      description: |-
        Read configured function point publisher

        JSON/CBOR mapping:  id=0, ga=7, url=10, ia=12
      operationId: readFunctionPointPublisher
      parameters:
        - name: publisher-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
             application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/FunctionPoint.Publisher.Profile.PostRequest-v0.json#/definitions/publisher"
              example:
                "0": "5"
                "10": "coap://1.gateway.knx.local/.knx"
                "7": [3305, 3306, 3307, 3308]
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    delete:
      tags:
        - Function Point Tables
      summary: Delete configured function point publisher
      description:  Remove configured function point publisher
      operationId: deleteFunctionPointPublisher
      parameters:
        - name: publisher-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "202":
          description: OK - CoAP 2.02 Deleted
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /f:
    get:
      tags:
        - Application Functionalblocks
      summary: Read functional block list (collection read transaction)
      description: The function block resource provides a list of vendor specific and in KNX Application Descriptions (volume 7) standardized functional blocks.
      operationId: readFunctionalblocks
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              examples:
                Application Functionalblock List (rt=fb):
                  value: | 
                    </dev>;rt=fb.0;ct=40,
                    </f/rts>;rt=fb.321;ct=40,
                    </f/rrhs>;rt=fb.337;ct=40
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"               
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"


  /f/{fb-id}:
    get:
      tags:
        - Application Functionalblocks
      summary: Read all properties of a functionalblock (linked list)
      description: Read linked list of properties that belong to a Functionalblock
      operationId: getFunctionalblock
      parameters:
        - name: fb-id
          in: path
          required: true
          schema:
            type: string
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              examples:
               Property List (dpt and/or dpa):
                  value:  | 
                    </p/rts/temproom>;rt=dpa:321.51;ct=50 60
                    </p/rts/tempcorrvalue>;rt=dpa:321.111;ct=50 60
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /p:
    post:
      tags:
        - Properties (Datapoints)
      summary: Write datapoint list incl. metadata fields (collection write transaction)
      description: Write a list of parameter properties to the device. Existing Function Point configurations (href) are replaced or added if no configuration exists for an Function Point (href).
      operationId: writeProperties
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.Collection-v0.json"
            example:
              - "1": 22.0
                "11": "p/rts/temproom"
                "min": 0.0
                "max": 50.0
                "mrt": 2
                "cov": 0.5
                "hbt": 900
              - "1": 22.0
                "11": "p/rts/tempcorr"
      responses:
        "204":
          description: OK - CoAP 2.04 Changed
        "231":
          $ref: "#/components/responses/Continue231"
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "408":
          $ref: "#/components/responses/RequestEntityIncomplete408"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Properties (Datapoints)
      summary: Read current value from parameter or diagnostic properties (collection read transaction)
      description: Read a list of property (datapoint) values
      operationId: readProperties
      parameters:
        - name: href
          in: query
          required: false
          description: 'The query m={name} will return the metadata item with name {name}. The query ''f'' will return all metadata assigned to the point'
          schema:
            type: string
          example: /p/rts/roomtemp,/p/rts/tempcorr
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.Collection-v0.json"
              examples:
                Values:
                  value:
                  - "11": "/p/rts/temproom"
                    "1": 21.0
                  - "11": "/p/rts/tempcorr"
                    "1": 1.0
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"               
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /p/{property-path}:
    get:
      tags:
        - Properties (Datapoints)
      summary: Read a value from a parameter or diagnostic property
      description: |-
        Query parameters (e.g. “lt”) of WebHook POST and CoAP observe GET subscription are handled equally in order to simplify the implementation.
      operationId: readProperty
      parameters:
        - name: property-path
          in: path
          required: true
          schema:
            type: string
        - name: m
          in: query
          required: false
          description: 'The query m={name} will return the metadata item with name {name}. The query ''f'' will return all metadata assigned to the point'
          schema:
            type: string
          example: min,max
        - $ref: "#/components/parameters/subLifetime"
        - $ref: "#/components/parameters/subCorrelationId"
        - $ref: "#/components/parameters/subConfirmedNotification"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/json:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.GetResponse-v0.json"
              examples:
                Value (w/o query):
                  "value": 21.0
                All fields (&f):
                  value:
                    "id": "iot://urn:knx:sn.12345678/p/rts/temproom"
                    "rt":
                      - "dpa.321.51"
                      - "dpt.9.1"
                    "value": 21.0
                    "if": 
                      - "if.o"
                      - "if.g.s"
                      - "if.d"
                    "unit": "DEG_C"
                    "min": 0.0
                    "max": 50.0
                    "mrt": 2
                    "cov": 0.5
                    "hbt": 900
                    "g":
                      "ga":
                        - 1234
                      "cflag":
                        - "r"
                        - "w"
                        - "t"
                        - "u"
                        - "i"
                Selected Fields (&m=min,max):
                  value:
                    "min": 0.0
                    "max": 50.0
                Value incl. status (w/o query):
                  value:
                    "value": 21.0
                    "overriden": true
            application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.GetResponse-v0.json"
              examples:
                Value (w/o query):
                  "value": 21.0
                Selected Fields (&m=min,max):
                  value:
                    "min": 0.0
                    "max": 50.0
                Value incl. status (w/o query):
                  value:
                    "1": 21.0
                    "111": true
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"               
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    put:
      tags:
        - Properties (Datapoints)
      summary: Write a value to a parameter property
      description: The point path may be obtained via discovery. The value of a parameter or diagnostic property is written if no query paramter is provided. Metadata can be written by providing the query parameter 'f' with the name of the metadata field as argument.
      operationId: writeProperty
      parameters:
        - name: property-path
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: |-
          Value that is written to the property (only one value or meta data per request).

          Valid are objects that conform to the datapoint type; also accepted is an object that contains the value after the 'value' tag
        content:
          application/json:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.PutRequest-v0.json"
            examples:
              Value (w/o query):
                "value": 21.0
              Selected Fields (min, max etc.):
                value:
                  "max": 50.0
              Value incl. command (w/o metadata fields):
                value:
                  "value": 25.0
                  "cmd": "override"
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Property.Profile.PutRequest-v0.json"
            examples:
              Value (w/o query):
                "value": 21.0
              Selected Fields (min, max etc.):
                value:
                  "max": 50.0
              Value incl. command (w/o metadata fields):
                value:
                  "1": 25.0
                  "2": "override"

      responses:
        "204":
          description: OK - CoAP 2.04 value changed
        "400":
          description: Invalid input - CoAP 4.00 Bad Request

  /p/{property-path}/sub:
    post:
      tags:
        - Subscriptions
      summary: Subscribe resource (if.o Points)
      description: |-
        The point path may be obtained via discovery. The value of a parameter or diagnostic property is returned if no query paramter is provided. Metadata can be accessed by providing the query parameter 'm' with the name of the metadata field as argument. 

        Metadata fields for a point may be either requested by the query f or m=*, returning all metadata field or by explicitly querying for a metadata field, e.g m=min.
      operationId: subscribeProperty
      parameters:
        - name: property-path
          in: path
          required: true
          schema:
            type: string
        - $ref: "#/components/parameters/subLifetime"
        - $ref: "#/components/parameters/subCorrelationId"
        - $ref: "#/components/parameters/subConfirmedNotification"
      requestBody:
        content:
          application/cbor:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Subscription.Profile.Item-v0.json"
            examples:
              Unicast Subscription (confirmed notification):
                value:
                  "10": "iot://urn:knx:sn.12344556/.knx"
              Multicast Subscription (confirmed notification):
                value:
                  "10": "coap://<ipv6-multicast-address>/.knx"
              Unicast Subscription w/ correlation ID (non-confirmed notification):
                value:
                  "10": "coap://example.com/topic/building-a"
                  "27": "987654321"
          application/json:
            schema:
              $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Subscription.Profile.Item-v0.json"
            examples:
              Unicast Subscription (confirmed notification):
                value:
                  url: "iot://urn:knx:sn.12344556/.knx"
              Multicast Subscription (confirmed notification):
                value:
                  url: "coap://<ipv6-multicast-address>/.knx"
              Unicast Subscription w/ correlation ID (non-confirmed notification):
                value:
                  url: "coap://example.com/topic/building-a"
                  at: "987654321"
      responses:
        "204":
          description: OK - CoAP 2.04 Changed
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"
        "413":
          $ref: "#/components/responses/RequestEntityTooLarge413"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    get:
      tags:
        - Subscriptions
      summary: Read all subscriptions of a resource (linked list)
      description: Read linked list of Subscriptions that belong to a Point
      operationId: getPointSubscriptions
      parameters:
        - name: property-path
          in: path
          required: true
          schema:
            type: string
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              example: |
                </sub/1>;ct=50,
                </sub/4>;ct=50
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /sub:
    get:
      tags:
        - Subscriptions
      summary: Read all subsribtions of a device (linked list)
      description: Read linked list of all device Subscriptions. 
      operationId: readSubscriptionsResources
      parameters:
        - $ref: "#/components/parameters/collectionOffset"
      responses:
        "205":
          description: OK - CoAP 2.05 Content
          content:
            application/link-format:
              schema: 
                type: string
              example: |
                </sub/1>;ct=50,
                </sub/4>;ct=50
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    delete:
      tags:
        - Subscriptions
      summary: delete all subscriptions of a device (WebHook and CoAP Observe)
      description: remove all subscrption of a device
      operationId: deleteAllSubscriptions
      responses:
        "202":
          description: OK - CoAP 2.02 Deleted
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                   
        "500":
          $ref: "#/components/responses/InternalServerError500"

  /sub/{subscription-id}:
    get:
      tags:
        - Subscriptions
      summary: Read Point subscription (WebHook or CoAP observe)
      description: The subscription list contains a list of urls for notification if a Point value changes. 
      operationId: readSubscription
      parameters:
        - name: subscription-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "205":
          description: OK - CoAP 2.05
          content:
             application/json:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Subscription.Profile.Item-v0.json"
              example:
                "url": "iot://urn:knx:sn.12345678/kitchen/sensors"
                "href": "p/rts/roomtemp"
                "con": true
                "at": "987654321"
                "cid": "1234"
                "lt": 1234
             application/cbor:
              schema:
                $ref: "https://schema.knx.org/2020/pointapi/1.0.0/schemas/point-api/Subscription.Profile.Item-v0.json"
              example:
                "10": "iot://urn:knx:sn.12345678/kitchen/sensors"
                "11": "p/rts/roomtemp"
                "27": "987654321"
                "cid": "1234"
                "con": true
                "lt": 1234
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                 
        "415":
          $ref: "#/components/responses/UnsupportedContentFormat415"   
        "500":
          $ref: "#/components/responses/InternalServerError500"

    delete:
      tags:
        - Subscriptions
      summary: delete Point subscription (WebHook or CoAP Observe)
      description: remove a subscrption from the list
      operationId: deleteSubscription
      parameters:
        - name: subscription-id
          in: path
          required: true
          schema:
            type: string
      responses:
        "202":
          description: OK - CoAP 2.02 Deleted
        "400":
          $ref: "#/components/responses/BadRequest400"
        "401":
          $ref: "#/components/responses/Unauthorized401"
        "402":
          $ref: "#/components/responses/BadOption402"
        "403":
          $ref: "#/components/responses/Forbidden403"
        "404":
          $ref: "#/components/responses/NotFound404"
        "405":
          $ref: "#/components/responses/MethodNotAllowed405"
        "406":
          $ref: "#/components/responses/NotAcceptable406"                   
        "500":
          $ref: "#/components/responses/InternalServerError500"

components:
  responses:
    Continue231:
      description: CoAP 2.31 Continue <br> This code indicates that the transfer of this block of the request body was successful and that the server encourages sending further blocks.
    BadRequest400:
      description: CoAP 4.00 Bad Request <br> The response means that server could not understand the request due to invalid syntax.
    Unauthorized401:
      description: CoAP 4.01 Unauthorized <br> Used if the client could not (yet) be properly authenticated, in order to check if it is authorized to access this resource. The client SHOULD perform action(s) to authenticate itself before retrying the request.
    BadOption402:
      description: CoAP 4.02 Bad Option <br> Diagnostic payload MUST be included and SHOULD start with the first unrecognized critical-option number as string.
    Forbidden403:
      description: CoAP 4.03 Forbidden <br> Used if the client could be authenticated but does not have the authorization to access this resource (e.g. wrong access scope).
    NotFound404:
      description: CoAP 4.04 Not Found <br> Server cannot find requested resource.
    MethodNotAllowed405:
      description: CoAP 4.05 Method Not Allowed <br> The request method (GET or PUT etc.) is known by the server but has been disabled and cannot be used.
    NotAcceptable406:
      description: CoAP 4.06 Not Acceptable <br> This response is sent when the server, after performing content negotiation, doesn't find any content following the criteria given by the client.
    RequestEntityIncomplete408:
      description: CoAP 4.08 Request Entity Incomplete <br> The code indicates one or more missing blocks.
    RequestEntityTooLarge413:
      description: CoAP 4.13 Request Entity Too Large <br> This might indicate to the client that it should adapt its query before sending it again.
    UnsupportedContentFormat415:
      description: CoAP 4.15 Unsupported content format <br> The media format of the requested data is not supported by the server, so the server is rejecting the request.
    InternalServerError500:
      description: CoAP 5.00 Internal Server Error <br> Unexpected error.

  parameters:
    
    collectionOffset:
      name: pn
      description: page[number] - The number of pages to skip before starting to collect the result set. This query parameter is usually 0 and the page size if fixed. Devices support offset >0 if the response size exceeds the maximum device payload size.
      in: query
      required: false
      schema:
        type: integer
        format: int64
        minimum: 0
        default: 0

    listMetadata:
      name: l
      description: List metadata members are used to provide additional information about the list such as the list size or default page size. The “l” query parameter MUST be used exclusively and combination with other query parameters on the same resource are not possible.
      in: query
      required: false
      schema:      
        type: string
      example: total,ps

    packageOffset:
      name: ps
      description: package[byte-offset] - The number of bytes to skip before continuing software update.
      in: query
      required: false
      schema:
        type: integer
        format: int64
        minimum: 0
        default: 0

    subLifetime:
      name: lt
      in: query
      required: false
      description: 'The lifetime (seconds) of a subscription (WebHook or CoAP observe) MUST be configured. If no lifetime is included in the initial subscription, then the server MUST return a response code of 4.00 Bad Request.'
      schema:
        type: string
      example: lt=8000

    subCorrelationId:
      name: cid
      in: query
      required: false
      description: 'A WebHook or an Observe subscription MAY contain a reference using a correlation identifier string (cid) as a query parameter. If present in the subscription, then the same identifier MUST also be present in the notification event.'
      schema:
        type: string
      example: cid=1029

    subConfirmedNotification:
      name: con
      in: query
      required: false
      description: 'The parameter indicates whether a notification resulting from a subscription must be sent over confirmable transport (con: confirmed message).'
      schema:
        type: string
      example: con
